All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.