* [ambarus:spi-nor/next 1/15] drivers/spi/atmel-quadspi.c:1080:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-02-13 5:44 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-02-13 5:44 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 19051 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Tudor Ambarus <tudor.ambarus@microchip.com>
tree: https://github.com/ambarus/linux-0day spi-nor/next
head: 038b3fa2d89f1a00fdb8767704cdb799a0fe746b
commit: ff51c966a3c5144ae964797349747e680ee47c3a [1/15] spi: atmel-quadspi: Add support for sama7g5 QSPI
:::::: branch date: 3 days ago
:::::: commit date: 6 days ago
config: riscv-randconfig-c006-20220210 (https://download.01.org/0day-ci/archive/20220213/202202131315.EkkujSNQ-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project e8bff9ae54a55b4dbfeb6ba55f723abbd81bf494)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/ambarus/linux-0day/commit/ff51c966a3c5144ae964797349747e680ee47c3a
git remote add ambarus https://github.com/ambarus/linux-0day
git fetch --no-tags ambarus spi-nor/next
git checkout ff51c966a3c5144ae964797349747e680ee47c3a
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
drivers/misc/habanalabs/goya/goya.c:1512:2: warning: Value stored to 'val' is never read [clang-analyzer-deadcode.DeadStores]
val = RREG32(tpc_slm_offset);
^
drivers/misc/habanalabs/goya/goya.c:1512:2: note: Value stored to 'val' is never read
drivers/misc/habanalabs/goya/goya.c:4250:2: warning: Value stored to 'i' is never read [clang-analyzer-deadcode.DeadStores]
i = RREG32(mmSYNC_MNGR_SOB_OBJ_0);
^
drivers/misc/habanalabs/goya/goya.c:4250:2: note: Value stored to 'i' is never read
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
kernel/trace/trace_printk.c:77:5: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(fmt, *iter);
^~~~~~
kernel/trace/trace_printk.c:77:5: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(fmt, *iter);
^~~~~~
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
9 warnings generated.
Suppressed 9 warnings (7 in non-user code, 2 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (7 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
>> drivers/spi/atmel-quadspi.c:1080:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = readl_poll_timeout(aq->regs + QSPI_SR2, val,
^
drivers/spi/atmel-quadspi.c:1080:3: note: Value stored to 'ret' is never read
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
drivers/spi/spi-axi-spi-engine.c:324:4: warning: Array access (from variable 'buf') results in a null pointer dereference [clang-analyzer-core.NullDereference]
writel_relaxed(buf[i], addr);
^
arch/riscv/include/asm/mmio.h:120:45: note: expanded from macro 'writel_relaxed'
#define writel_relaxed(v, c) ({ __io_rbw(); writel_cpu((v), (c)); __io_raw(); })
^
arch/riscv/include/asm/mmio.h:93:59: note: expanded from macro 'writel_cpu'
#define writel_cpu(v, c) ((void)__raw_writel((__force u32)cpu_to_le32(v), (c)))
^
include/linux/byteorder/generic.h:88:21: note: expanded from macro 'cpu_to_le32'
#define cpu_to_le32 __cpu_to_le32
^
include/uapi/linux/byteorder/little_endian.h:34:50: note: expanded from macro '__cpu_to_le32'
#define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
^
drivers/spi/spi-axi-spi-engine.c:425:2: note: Calling 'spi_engine_compile_message'
spi_engine_compile_message(spi_engine, msg, true, &p_dry);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-axi-spi-engine.c:215:2: note: Loop condition is false. Execution continues on line 238
list_for_each_entry(xfer, &msg->transfers, transfer_list) {
^
include/linux/list.h:638:2: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
drivers/spi/spi-axi-spi-engine.c:238:2: note: Returning without writing to 'spi_engine->tx_length', which participates in a condition later
return 0;
^
drivers/spi/spi-axi-spi-engine.c:238:2: note: Returning without writing to 'spi_engine->tx_buf'
drivers/spi/spi-axi-spi-engine.c:425:2: note: Returning from 'spi_engine_compile_message'
spi_engine_compile_message(spi_engine, msg, true, &p_dry);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-axi-spi-engine.c:429:6: note: Assuming 'p' is non-null
if (!p)
^~
drivers/spi/spi-axi-spi-engine.c:429:2: note: Taking false branch
if (!p)
^
drivers/spi/spi-axi-spi-engine.c:431:2: note: Calling 'spi_engine_compile_message'
spi_engine_compile_message(spi_engine, msg, false, p);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-axi-spi-engine.c:215:2: note: Loop condition is false. Execution continues on line 238
list_for_each_entry(xfer, &msg->transfers, transfer_list) {
^
include/linux/list.h:638:2: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
drivers/spi/spi-axi-spi-engine.c:238:2: note: Returning without writing to 'spi_engine->tx_length', which participates in a condition later
return 0;
^
drivers/spi/spi-axi-spi-engine.c:238:2: note: Returning without writing to 'spi_engine->tx_buf'
drivers/spi/spi-axi-spi-engine.c:431:2: note: Returning from 'spi_engine_compile_message'
spi_engine_compile_message(spi_engine, msg, false, p);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-axi-spi-engine.c:433:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&spi_engine->lock, flags);
^
include/linux/spinlock.h:379:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:240:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/spi/spi-axi-spi-engine.c:433:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&spi_engine->lock, flags);
^
include/linux/spinlock.h:377:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/spi/spi-axi-spi-engine.c:443:6: note: Calling 'spi_engine_write_cmd_fifo'
if (spi_engine_write_cmd_fifo(spi_engine))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-axi-spi-engine.c:299:6: note: Loop condition is false. Exiting loop
n = readl_relaxed(spi_engine->base + SPI_ENGINE_REG_CMD_FIFO_ROOM);
^
arch/riscv/include/asm/mmio.h:116:38: note: expanded from macro 'readl_relaxed'
#define readl_relaxed(c) ({ u32 __v; __io_rbr(); __v = readl_cpu(c); __io_rar(); __v; })
^
arch/riscv/include/asm/mmio.h:109:21: note: expanded from macro '__io_rbr'
#define __io_rbr() do {} while (0)
^
drivers/spi/spi-axi-spi-engine.c:299:6: note: Loop condition is false. Exiting loop
n = readl_relaxed(spi_engine->base + SPI_ENGINE_REG_CMD_FIFO_ROOM);
^
arch/riscv/include/asm/mmio.h:116:70: note: expanded from macro 'readl_relaxed'
#define readl_relaxed(c) ({ u32 __v; __io_rbr(); __v = readl_cpu(c); __io_rar(); __v; })
^
arch/riscv/include/asm/mmio.h:110:21: note: expanded from macro '__io_rar'
#define __io_rar() do {} while (0)
^
drivers/spi/spi-axi-spi-engine.c:300:9: note: Assuming 'n' is 0
while (n && spi_engine->cmd_length) {
^
drivers/spi/spi-axi-spi-engine.c:300:11: note: Left side of '&&' is false
while (n && spi_engine->cmd_length) {
vim +/ret +1080 drivers/spi/atmel-quadspi.c
ff51c966a3c514 Tudor Ambarus 2020-10-19 1064
ff51c966a3c514 Tudor Ambarus 2020-10-19 1065 static int atmel_qspi_sama7g5_init(struct atmel_qspi *aq)
ff51c966a3c514 Tudor Ambarus 2020-10-19 1066 {
ff51c966a3c514 Tudor Ambarus 2020-10-19 1067 u32 val;
ff51c966a3c514 Tudor Ambarus 2020-10-19 1068 int ret;
ff51c966a3c514 Tudor Ambarus 2020-10-19 1069
ff51c966a3c514 Tudor Ambarus 2020-10-19 1070 ret = atmel_qspi_set_gclk(aq);
ff51c966a3c514 Tudor Ambarus 2020-10-19 1071 if (ret)
ff51c966a3c514 Tudor Ambarus 2020-10-19 1072 return ret;
ff51c966a3c514 Tudor Ambarus 2020-10-19 1073
ff51c966a3c514 Tudor Ambarus 2020-10-19 1074 if (aq->caps->octal) {
ff51c966a3c514 Tudor Ambarus 2020-10-19 1075 ret = atmel_qspi_set_pad_calibration(aq);
ff51c966a3c514 Tudor Ambarus 2020-10-19 1076 if (ret)
ff51c966a3c514 Tudor Ambarus 2020-10-19 1077 return ret;
ff51c966a3c514 Tudor Ambarus 2020-10-19 1078 } else {
ff51c966a3c514 Tudor Ambarus 2020-10-19 1079 atmel_qspi_write(QSPI_CR_DLLON, aq, QSPI_CR);
ff51c966a3c514 Tudor Ambarus 2020-10-19 @1080 ret = readl_poll_timeout(aq->regs + QSPI_SR2, val,
ff51c966a3c514 Tudor Ambarus 2020-10-19 1081 (val & QSPI_SR2_DLOCK), 40,
ff51c966a3c514 Tudor Ambarus 2020-10-19 1082 ATMEL_QSPI_TIMEOUT);
ff51c966a3c514 Tudor Ambarus 2020-10-19 1083 }
ff51c966a3c514 Tudor Ambarus 2020-10-19 1084
ff51c966a3c514 Tudor Ambarus 2020-10-19 1085 /* Set the QSPI controller by default in Serial Memory Mode */
ff51c966a3c514 Tudor Ambarus 2020-10-19 1086 atmel_qspi_write(QSPI_MR_SMM | QSPI_MR_DQSDLYEN, aq, QSPI_MR);
ff51c966a3c514 Tudor Ambarus 2020-10-19 1087 aq->mr = QSPI_MR_SMM;
ff51c966a3c514 Tudor Ambarus 2020-10-19 1088 ret = atmel_qspi_update_config(aq);
ff51c966a3c514 Tudor Ambarus 2020-10-19 1089 if (ret)
ff51c966a3c514 Tudor Ambarus 2020-10-19 1090 return ret;
ff51c966a3c514 Tudor Ambarus 2020-10-19 1091
ff51c966a3c514 Tudor Ambarus 2020-10-19 1092 /* Enable the QSPI controller. */
ff51c966a3c514 Tudor Ambarus 2020-10-19 1093 atmel_qspi_write(QSPI_CR_QSPIEN, aq, QSPI_CR);
ff51c966a3c514 Tudor Ambarus 2020-10-19 1094 ret = readl_poll_timeout(aq->regs + QSPI_SR2, val,
ff51c966a3c514 Tudor Ambarus 2020-10-19 1095 val & QSPI_SR2_QSPIENS, 40,
ff51c966a3c514 Tudor Ambarus 2020-10-19 1096 ATMEL_QSPI_SYNC_TIMEOUT);
ff51c966a3c514 Tudor Ambarus 2020-10-19 1097 if (ret)
ff51c966a3c514 Tudor Ambarus 2020-10-19 1098 return ret;
ff51c966a3c514 Tudor Ambarus 2020-10-19 1099
ff51c966a3c514 Tudor Ambarus 2020-10-19 1100 if (aq->caps->octal) {
ff51c966a3c514 Tudor Ambarus 2020-10-19 1101 ret = readl_poll_timeout(aq->regs + QSPI_SR, val,
ff51c966a3c514 Tudor Ambarus 2020-10-19 1102 val & QSPI_SR_RFRSHD, 40,
ff51c966a3c514 Tudor Ambarus 2020-10-19 1103 ATMEL_QSPI_TIMEOUT);
ff51c966a3c514 Tudor Ambarus 2020-10-19 1104 }
ff51c966a3c514 Tudor Ambarus 2020-10-19 1105
ff51c966a3c514 Tudor Ambarus 2020-10-19 1106 atmel_qspi_write(QSPI_TOUT_TCNTM, aq, QSPI_TOUT);
ff51c966a3c514 Tudor Ambarus 2020-10-19 1107 return ret;
ff51c966a3c514 Tudor Ambarus 2020-10-19 1108 }
ff51c966a3c514 Tudor Ambarus 2020-10-19 1109
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-02-13 5:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-13 5:44 [ambarus:spi-nor/next 1/15] drivers/spi/atmel-quadspi.c:1080:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.