All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/pci/controller/pci-aardvark.c:595:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
@ 2021-12-05 19:49 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-12-05 19:49 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 26355 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: "Marek Behún" <kabel@kernel.org>
CC: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   79a72162048e42a677bc7336a9f5d86fc3ff9558
commit: 464de7e7fff767e87429cd7be09c4f2cb50a6ccb PCI: aardvark: Don't spam about PIO Response Status
date:   8 weeks ago
:::::: branch date: 18 hours ago
:::::: commit date: 8 weeks ago
config: riscv-randconfig-c006-20211130 (https://download.01.org/0day-ci/archive/20211206/202112060335.8fqYfiMO-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 25eb7fa01d7ebbe67648ea03841cda55b4239ab2)
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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=464de7e7fff767e87429cd7be09c4f2cb50a6ccb
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 464de7e7fff767e87429cd7be09c4f2cb50a6ccb
        # 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 >>)
                  ^
   include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE'
   #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO)
                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pwm/core.c:787:6: note: Returning from 'IS_ERR'
           if (IS_ERR(pc)) {
               ^~~~~~~~~~
   drivers/pwm/core.c:787:2: note: Taking false branch
           if (IS_ERR(pc)) {
           ^
   drivers/pwm/core.c:796:6: note: Calling 'IS_ERR'
           if (IS_ERR(pwm))
               ^~~~~~~~~~~
   include/linux/err.h:36:9: note: Assuming the condition is false
           return IS_ERR_VALUE((unsigned long)ptr);
                  ^
   include/linux/err.h:22:34: note: expanded from macro 'IS_ERR_VALUE'
   #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO)
                           ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pwm/core.c:796:6: note: Returning from 'IS_ERR'
           if (IS_ERR(pwm))
               ^~~~~~~~~~~
   drivers/pwm/core.c:796:2: note: Taking false branch
           if (IS_ERR(pwm))
           ^
   drivers/pwm/core.c:800:6: note: Calling 'IS_ERR'
           if (IS_ERR(dl)) {
               ^~~~~~~~~~
   include/linux/err.h:36:2: note: Returning zero, which participates in a condition later
           return IS_ERR_VALUE((unsigned long)ptr);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/pwm/core.c:800:6: note: Returning from 'IS_ERR'
           if (IS_ERR(dl)) {
               ^~~~~~~~~~
   drivers/pwm/core.c:800:2: note: Taking false branch
           if (IS_ERR(dl)) {
           ^
   drivers/pwm/core.c:812:7: note: 'con_id' is null
           if (!con_id) {
                ^~~~~~
   drivers/pwm/core.c:812:2: note: Taking true branch
           if (!con_id) {
           ^
   drivers/pwm/core.c:815:7: note: 'err' is < 0
                   if (err < 0)
                       ^~~
   drivers/pwm/core.c:815:3: note: Taking true branch
                   if (err < 0)
                   ^
   drivers/pwm/core.c:816:13: note: Access to field 'name' results in a dereference of a null pointer (loaded from variable 'np')
                           con_id = np->name;
                                    ^~
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   drivers/pci/ecam.c:129:15: warning: Value stored to 'bsz' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           unsigned int bsz = 1 << cfg->bus_shift;
                        ^~~   ~~~~~~~~~~~~~~~~~~~
   drivers/pci/ecam.c:129:15: note: Value stored to 'bsz' during its initialization is never read
           unsigned int bsz = 1 << cfg->bus_shift;
                        ^~~   ~~~~~~~~~~~~~~~~~~~
   drivers/pci/ecam.c:130:15: warning: Value stored to 'busn' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           unsigned int busn = bus->number;
                        ^~~~   ~~~~~~~~~~~
   drivers/pci/ecam.c:130:15: note: Value stored to 'busn' during its initialization is never read
           unsigned int busn = bus->number;
                        ^~~~   ~~~~~~~~~~~
   drivers/pci/ecam.c:151:28: warning: Value stored to 'cfg' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct pci_config_window *cfg = bus->sysdata;
                                     ^~~   ~~~~~~~~~~~~
   drivers/pci/ecam.c:151:28: note: Value stored to 'cfg' during its initialization is never read
           struct pci_config_window *cfg = bus->sysdata;
                                     ^~~   ~~~~~~~~~~~~
   drivers/pci/ecam.c:152:15: warning: Value stored to 'busn' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           unsigned int busn = bus->number;
                        ^~~~   ~~~~~~~~~~~
   drivers/pci/ecam.c:152:15: note: Value stored to 'busn' during its initialization is never read
           unsigned int busn = bus->number;
                        ^~~~   ~~~~~~~~~~~
   Suppressed 2 warnings (2 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.
   5 warnings generated.
>> drivers/pci/controller/pci-aardvark.c:595:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &pcie->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:595:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = &pcie->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
>> drivers/pci/controller/pci-aardvark.c:682:3: warning: Value stored to 'str_posted' is never read [clang-analyzer-deadcode.DeadStores]
                   str_posted = "Non-posted";
                   ^            ~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:682:3: note: Value stored to 'str_posted' is never read
                   str_posted = "Non-posted";
                   ^            ~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:684:3: warning: Value stored to 'str_posted' is never read [clang-analyzer-deadcode.DeadStores]
                   str_posted = "Posted";
                   ^            ~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:684:3: note: Value stored to 'str_posted' is never read
                   str_posted = "Posted";
                   ^            ~~~~~~~~
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   3 warnings generated.
   lib/string_helpers.c:111:12: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           remainder += rounding[j];
                     ^  ~~~~~~~~~~~
   lib/string_helpers.c:59:6: note: Assuming 'blk_size' is not equal to 0
           if (blk_size == 0)
               ^~~~~~~~~~~~~
   lib/string_helpers.c:59:2: note: Taking false branch
           if (blk_size == 0)
           ^
   lib/string_helpers.c:61:6: note: Assuming 'size' is not equal to 0
           if (size == 0)
               ^~~~~~~~~
   lib/string_helpers.c:61:2: note: Taking false branch
           if (size == 0)
           ^
   lib/string_helpers.c:75:2: note: Loop condition is false. Execution continues on line 80
           while (blk_size >> 32) {
           ^
   lib/string_helpers.c:80:2: note: Loop condition is false. Execution continues on line 87
           while (size >> 32) {
           ^
   lib/string_helpers.c:90:2: note: Loop condition is false. Execution continues on line 97
           while (size >= divisor[units]) {
           ^
   lib/string_helpers.c:98:14: note: Assuming the condition is true
           for (j = 0; sf_cap*10 < 1000; j++)
                       ^~~~~~~~~~~~~~~~
   lib/string_helpers.c:98:2: note: Loop condition is true.  Entering loop body
           for (j = 0; sf_cap*10 < 1000; j++)
           ^
   lib/string_helpers.c:98:14: note: Assuming the condition is true
           for (j = 0; sf_cap*10 < 1000; j++)
                       ^~~~~~~~~~~~~~~~
   lib/string_helpers.c:98:2: note: Loop condition is true.  Entering loop body
           for (j = 0; sf_cap*10 < 1000; j++)
           ^
   lib/string_helpers.c:98:14: note: Assuming the condition is true
           for (j = 0; sf_cap*10 < 1000; j++)
                       ^~~~~~~~~~~~~~~~
   lib/string_helpers.c:98:2: note: Loop condition is true.  Entering loop body
           for (j = 0; sf_cap*10 < 1000; j++)
           ^
   lib/string_helpers.c:98:32: note: The value 3 is assigned to 'j'
           for (j = 0; sf_cap*10 < 1000; j++)
                                         ^~~
   lib/string_helpers.c:98:14: note: Assuming the condition is false
           for (j = 0; sf_cap*10 < 1000; j++)
                       ^~~~~~~~~~~~~~~~
   lib/string_helpers.c:98:2: note: Loop condition is false. Execution continues on line 101
           for (j = 0; sf_cap*10 < 1000; j++)
           ^
   lib/string_helpers.c:101:6: note: Assuming 'units' is not equal to STRING_UNITS_2
           if (units == STRING_UNITS_2) {
               ^~~~~~~~~~~~~~~~~~~~~~~
   lib/string_helpers.c:101:2: note: Taking false branch
           if (units == STRING_UNITS_2) {
           ^
   lib/string_helpers.c:111:12: note: Assigned value is garbage or undefined
           remainder += rounding[j];
                     ^  ~~~~~~~~~~~
   Suppressed 2 warnings (2 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.
   3 warnings generated.
   drivers/pci/controller/dwc/pci-dra7xx.c:290:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = pci->dev;
                          ^~~   ~~~~~~~~
   drivers/pci/controller/dwc/pci-dra7xx.c:290:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = pci->dev;
                          ^~~   ~~~~~~~~
   Suppressed 2 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.

vim +/dev +595 drivers/pci/controller/pci-aardvark.c

8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  592  
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  593  static int advk_pcie_check_pio_status(struct advk_pcie *pcie, bool allow_crs, u32 *val)
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  594  {
9aec2feaf787a7 drivers/pci/host/pci-aardvark.c       Bjorn Helgaas    2016-10-06 @595  	struct device *dev = &pcie->pdev->dev;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  596  	u32 reg;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  597  	unsigned int status;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  598  	char *strcomp_status, *str_posted;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  599  
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  600  	reg = advk_readl(pcie, PIO_STAT);
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  601  	status = (reg & PIO_COMPLETION_STATUS_MASK) >>
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  602  		PIO_COMPLETION_STATUS_SHIFT;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  603  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  604  	/*
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  605  	 * According to HW spec, the PIO status check sequence as below:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  606  	 * 1) even if COMPLETION_STATUS(bit9:7) indicates successful,
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  607  	 *    it still needs to check Error Status(bit11), only when this bit
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  608  	 *    indicates no error happen, the operation is successful.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  609  	 * 2) value Unsupported Request(1) of COMPLETION_STATUS(bit9:7) only
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  610  	 *    means a PIO write error, and for PIO read it is successful with
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  611  	 *    a read value of 0xFFFFFFFF.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  612  	 * 3) value Completion Retry Status(CRS) of COMPLETION_STATUS(bit9:7)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  613  	 *    only means a PIO write error, and for PIO read it is successful
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  614  	 *    with a read value of 0xFFFF0001.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  615  	 * 4) value Completer Abort (CA) of COMPLETION_STATUS(bit9:7) means
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  616  	 *    error for both PIO read and PIO write operation.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  617  	 * 5) other errors are indicated as 'unknown'.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  618  	 */
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  619  	switch (status) {
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  620  	case PIO_COMPLETION_STATUS_OK:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  621  		if (reg & PIO_ERR_STATUS) {
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  622  			strcomp_status = "COMP_ERR";
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  623  			break;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  624  		}
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  625  		/* Get the read result */
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  626  		if (val)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  627  			*val = advk_readl(pcie, PIO_RD_DATA);
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  628  		/* No error */
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  629  		strcomp_status = NULL;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  630  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  631  	case PIO_COMPLETION_STATUS_UR:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  632  		strcomp_status = "UR";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  633  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  634  	case PIO_COMPLETION_STATUS_CRS:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  635  		if (allow_crs && val) {
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  636  			/* PCIe r4.0, sec 2.3.2, says:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  637  			 * If CRS Software Visibility is enabled:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  638  			 * For a Configuration Read Request that includes both
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  639  			 * bytes of the Vendor ID field of a device Function's
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  640  			 * Configuration Space Header, the Root Complex must
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  641  			 * complete the Request to the host by returning a
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  642  			 * read-data value of 0001h for the Vendor ID field and
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  643  			 * all '1's for any additional bytes included in the
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  644  			 * request.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  645  			 *
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  646  			 * So CRS in this case is not an error status.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  647  			 */
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  648  			*val = CFG_RD_CRS_VAL;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  649  			strcomp_status = NULL;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  650  			break;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  651  		}
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  652  		/* PCIe r4.0, sec 2.3.2, says:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  653  		 * If CRS Software Visibility is not enabled, the Root Complex
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  654  		 * must re-issue the Configuration Request as a new Request.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  655  		 * If CRS Software Visibility is enabled: For a Configuration
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  656  		 * Write Request or for any other Configuration Read Request,
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  657  		 * the Root Complex must re-issue the Configuration Request as
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  658  		 * a new Request.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  659  		 * A Root Complex implementation may choose to limit the number
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  660  		 * of Configuration Request/CRS Completion Status loops before
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  661  		 * determining that something is wrong with the target of the
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  662  		 * Request and taking appropriate action, e.g., complete the
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  663  		 * Request to the host as a failed transaction.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  664  		 *
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  665  		 * To simplify implementation do not re-issue the Configuration
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  666  		 * Request and complete the Request as a failed transaction.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  667  		 */
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  668  		strcomp_status = "CRS";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  669  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  670  	case PIO_COMPLETION_STATUS_CA:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  671  		strcomp_status = "CA";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  672  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  673  	default:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  674  		strcomp_status = "Unknown";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  675  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  676  	}
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  677  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  678  	if (!strcomp_status)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  679  		return 0;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  680  
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  681  	if (reg & PIO_NON_POSTED_REQ)
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30 @682  		str_posted = "Non-posted";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  683  	else
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  684  		str_posted = "Posted";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  685  
464de7e7fff767 drivers/pci/controller/pci-aardvark.c Marek Behún      2021-10-05  686  	dev_dbg(dev, "%s PIO Response Status: %s, %#x @ %#x\n",
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  687  		str_posted, strcomp_status, reg, advk_readl(pcie, PIO_ADDR_LS));
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  688  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  689  	return -EFAULT;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  690  }
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  691  

:::::: The code at line 595 was first introduced by commit
:::::: 9aec2feaf787a766f802172e9021c7422029bc64 PCI: aardvark: Add local struct device pointers

:::::: TO: Bjorn Helgaas <bhelgaas@google.com>
:::::: CC: Bjorn Helgaas <bhelgaas@google.com>

---
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] 4+ messages in thread

* drivers/pci/controller/pci-aardvark.c:595:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-03-19  5:31 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-03-19  5:31 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 28179 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: "Marek Behún" <kabel@kernel.org>
CC: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   34e047aa16c0123bbae8e2f6df33e5ecc1f56601
commit: 464de7e7fff767e87429cd7be09c4f2cb50a6ccb PCI: aardvark: Don't spam about PIO Response Status
date:   5 months ago
:::::: branch date: 10 hours ago
:::::: commit date: 5 months ago
config: riscv-randconfig-c006-20220307 (https://download.01.org/0day-ci/archive/20220319/202203191339.68l7gFv8-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=464de7e7fff767e87429cd7be09c4f2cb50a6ccb
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 464de7e7fff767e87429cd7be09c4f2cb50a6ccb
        # 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 >>)
   drivers/gpu/drm/bridge/tc358767.c:820:2: note: Value stored to 'ret' is never read
           ret = regmap_write(tc->regmap, DP0_VIDSYNCDELAY,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/bridge/tc358767.c:946:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = regmap_write(tc->regmap, DP_PHY_CTRL, dp_phy_ctrl);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/bridge/tc358767.c:946:2: note: Value stored to 'ret' is never read
           ret = regmap_write(tc->regmap, DP_PHY_CTRL, dp_phy_ctrl);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/bridge/tc358767.c:949:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = regmap_write(tc->regmap, DP_PHY_CTRL, dp_phy_ctrl);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/bridge/tc358767.c:949:2: note: Value stored to 'ret' is never read
           ret = regmap_write(tc->regmap, DP_PHY_CTRL, dp_phy_ctrl);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   9 warnings generated.
   drivers/gpu/drm/bridge/adv7511/adv7511_drv.c:508:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
                   ret = wait_event_interruptible_timeout(adv7511->wq,
                   ^
   drivers/gpu/drm/bridge/adv7511/adv7511_drv.c:508:3: note: Value stored to 'ret' 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.
   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.
   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.
   5 warnings generated.
   Suppressed 5 warnings (5 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.
   5 warnings generated.
   Suppressed 5 warnings (5 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 (9 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/media/v4l2-core/v4l2-mc.c:176:4: warning: Value stored to 'if_aud' is never read [clang-analyzer-deadcode.DeadStores]
                           if_aud = tuner;
                           ^        ~~~~~
   drivers/media/v4l2-core/v4l2-mc.c:176:4: note: Value stored to 'if_aud' is never read
                           if_aud = tuner;
                           ^        ~~~~~
   Suppressed 9 warnings (9 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 (9 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 (9 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.
   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.
   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.
   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.
   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.
   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.
   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.
   10 warnings generated.
   Suppressed 10 warnings (10 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   Suppressed 10 warnings (10 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.
   Suppressed 10 warnings (10 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.
   Suppressed 10 warnings (10 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.
   12 warnings generated.
>> drivers/pci/controller/pci-aardvark.c:595:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &pcie->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:595:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = &pcie->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
>> drivers/pci/controller/pci-aardvark.c:682:3: warning: Value stored to 'str_posted' is never read [clang-analyzer-deadcode.DeadStores]
                   str_posted = "Non-posted";
                   ^            ~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:682:3: note: Value stored to 'str_posted' is never read
                   str_posted = "Non-posted";
                   ^            ~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:684:3: warning: Value stored to 'str_posted' is never read [clang-analyzer-deadcode.DeadStores]
                   str_posted = "Posted";
                   ^            ~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:684:3: note: Value stored to 'str_posted' is never read
                   str_posted = "Posted";
                   ^            ~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:1439:21: warning: The result of the left shift is undefined because the right operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
                           win_size = (1ULL << (fls64(size)-1)) |
                                            ^  ~~~~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:1396:6: note: Assuming 'bridge' is non-null
           if (!bridge)
               ^~~~~~~
   drivers/pci/controller/pci-aardvark.c:1396:2: note: Taking false branch
           if (!bridge)
           ^
   drivers/pci/controller/pci-aardvark.c:1403:2: note: Left side of '&&' is false
           resource_list_for_each_entry(entry, &bridge->windows) {
           ^
   include/linux/resource_ext.h:64:2: note: expanded from macro 'resource_list_for_each_entry'
           list_for_each_entry((entry), (list), node)
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/pci/controller/pci-aardvark.c:1403:2: note: Taking false branch
           resource_list_for_each_entry(entry, &bridge->windows) {
           ^
   include/linux/resource_ext.h:64:2: note: expanded from macro 'resource_list_for_each_entry'
           list_for_each_entry((entry), (list), node)
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/pci/controller/pci-aardvark.c:1403:2: note: Loop condition is false.  Exiting loop
           resource_list_for_each_entry(entry, &bridge->windows) {
           ^
   include/linux/resource_ext.h:64:2: note: expanded from macro 'resource_list_for_each_entry'
           list_for_each_entry((entry), (list), node)
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/pci/controller/pci-aardvark.c:1403:2: note: Loop condition is true.  Entering loop body
           resource_list_for_each_entry(entry, &bridge->windows) {
           ^
   include/linux/resource_ext.h:64:2: note: expanded from macro 'resource_list_for_each_entry'
           list_for_each_entry((entry), (list), node)
           ^
   include/linux/list.h:628:2: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
           ^
   drivers/pci/controller/pci-aardvark.c:1415:7: note: Assuming 'type' is equal to IORESOURCE_MEM
                   if (type != IORESOURCE_MEM && type != IORESOURCE_MEM_64 &&
                       ^~~~~~~~~~~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:1415:30: note: Left side of '&&' is false
                   if (type != IORESOURCE_MEM && type != IORESOURCE_MEM_64 &&
                                              ^
   drivers/pci/controller/pci-aardvark.c:1424:8: note: 'type' is equal to IORESOURCE_MEM
                   if ((type == IORESOURCE_MEM || type == IORESOURCE_MEM_64) &&
                        ^~~~

vim +/dev +595 drivers/pci/controller/pci-aardvark.c

8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  592  
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  593  static int advk_pcie_check_pio_status(struct advk_pcie *pcie, bool allow_crs, u32 *val)
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  594  {
9aec2feaf787a7 drivers/pci/host/pci-aardvark.c       Bjorn Helgaas    2016-10-06 @595  	struct device *dev = &pcie->pdev->dev;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  596  	u32 reg;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  597  	unsigned int status;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  598  	char *strcomp_status, *str_posted;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  599  
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  600  	reg = advk_readl(pcie, PIO_STAT);
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  601  	status = (reg & PIO_COMPLETION_STATUS_MASK) >>
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  602  		PIO_COMPLETION_STATUS_SHIFT;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  603  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  604  	/*
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  605  	 * According to HW spec, the PIO status check sequence as below:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  606  	 * 1) even if COMPLETION_STATUS(bit9:7) indicates successful,
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  607  	 *    it still needs to check Error Status(bit11), only when this bit
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  608  	 *    indicates no error happen, the operation is successful.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  609  	 * 2) value Unsupported Request(1) of COMPLETION_STATUS(bit9:7) only
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  610  	 *    means a PIO write error, and for PIO read it is successful with
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  611  	 *    a read value of 0xFFFFFFFF.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  612  	 * 3) value Completion Retry Status(CRS) of COMPLETION_STATUS(bit9:7)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  613  	 *    only means a PIO write error, and for PIO read it is successful
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  614  	 *    with a read value of 0xFFFF0001.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  615  	 * 4) value Completer Abort (CA) of COMPLETION_STATUS(bit9:7) means
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  616  	 *    error for both PIO read and PIO write operation.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  617  	 * 5) other errors are indicated as 'unknown'.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  618  	 */
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  619  	switch (status) {
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  620  	case PIO_COMPLETION_STATUS_OK:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  621  		if (reg & PIO_ERR_STATUS) {
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  622  			strcomp_status = "COMP_ERR";
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  623  			break;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  624  		}
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  625  		/* Get the read result */
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  626  		if (val)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  627  			*val = advk_readl(pcie, PIO_RD_DATA);
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  628  		/* No error */
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  629  		strcomp_status = NULL;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  630  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  631  	case PIO_COMPLETION_STATUS_UR:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  632  		strcomp_status = "UR";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  633  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  634  	case PIO_COMPLETION_STATUS_CRS:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  635  		if (allow_crs && val) {
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  636  			/* PCIe r4.0, sec 2.3.2, says:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  637  			 * If CRS Software Visibility is enabled:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  638  			 * For a Configuration Read Request that includes both
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  639  			 * bytes of the Vendor ID field of a device Function's
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  640  			 * Configuration Space Header, the Root Complex must
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  641  			 * complete the Request to the host by returning a
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  642  			 * read-data value of 0001h for the Vendor ID field and
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  643  			 * all '1's for any additional bytes included in the
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  644  			 * request.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  645  			 *
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  646  			 * So CRS in this case is not an error status.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  647  			 */
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  648  			*val = CFG_RD_CRS_VAL;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  649  			strcomp_status = NULL;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  650  			break;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  651  		}
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  652  		/* PCIe r4.0, sec 2.3.2, says:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  653  		 * If CRS Software Visibility is not enabled, the Root Complex
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  654  		 * must re-issue the Configuration Request as a new Request.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  655  		 * If CRS Software Visibility is enabled: For a Configuration
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  656  		 * Write Request or for any other Configuration Read Request,
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  657  		 * the Root Complex must re-issue the Configuration Request as
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  658  		 * a new Request.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  659  		 * A Root Complex implementation may choose to limit the number
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  660  		 * of Configuration Request/CRS Completion Status loops before
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  661  		 * determining that something is wrong with the target of the
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  662  		 * Request and taking appropriate action, e.g., complete the
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  663  		 * Request to the host as a failed transaction.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  664  		 *
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  665  		 * To simplify implementation do not re-issue the Configuration
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  666  		 * Request and complete the Request as a failed transaction.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  667  		 */
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  668  		strcomp_status = "CRS";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  669  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  670  	case PIO_COMPLETION_STATUS_CA:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  671  		strcomp_status = "CA";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  672  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  673  	default:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  674  		strcomp_status = "Unknown";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  675  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  676  	}
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  677  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  678  	if (!strcomp_status)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  679  		return 0;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  680  
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  681  	if (reg & PIO_NON_POSTED_REQ)
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30 @682  		str_posted = "Non-posted";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  683  	else
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  684  		str_posted = "Posted";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  685  
464de7e7fff767 drivers/pci/controller/pci-aardvark.c Marek Behún      2021-10-05  686  	dev_dbg(dev, "%s PIO Response Status: %s, %#x @ %#x\n",
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  687  		str_posted, strcomp_status, reg, advk_readl(pcie, PIO_ADDR_LS));
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  688  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  689  	return -EFAULT;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  690  }
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  691  

:::::: The code at line 595 was first introduced by commit
:::::: 9aec2feaf787a766f802172e9021c7422029bc64 PCI: aardvark: Add local struct device pointers

:::::: TO: Bjorn Helgaas <bhelgaas@google.com>
:::::: CC: Bjorn Helgaas <bhelgaas@google.com>

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 4+ messages in thread

* drivers/pci/controller/pci-aardvark.c:595:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-03-13 14:35 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-03-13 14:35 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 26654 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: "Marek Behún" <kabel@kernel.org>
CC: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   aad611a868d16cdc16a7d4a764cef955293e47e3
commit: 464de7e7fff767e87429cd7be09c4f2cb50a6ccb PCI: aardvark: Don't spam about PIO Response Status
date:   5 months ago
:::::: branch date: 20 hours ago
:::::: commit date: 5 months ago
config: riscv-randconfig-c006-20220307 (https://download.01.org/0day-ci/archive/20220313/202203132225.vKAkPROX-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=464de7e7fff767e87429cd7be09c4f2cb50a6ccb
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 464de7e7fff767e87429cd7be09c4f2cb50a6ccb
        # 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 >>)
                                ^~~~~~~~~~~~~~~~~
   drivers/gpu/drm/savage/savage_bci.c:987:9: note: Returning from 'savage_freelist_get'
                   buf = savage_freelist_get(dev);
                         ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/savage/savage_bci.c:988:8: note: 'buf' is non-null
                   if (!buf)
                        ^~~
   drivers/gpu/drm/savage/savage_bci.c:988:3: note: Taking false branch
                   if (!buf)
                   ^
   drivers/gpu/drm/savage/savage_bci.c:993:7: note: Assuming the condition is false
                   if (copy_to_user(&d->request_indices[i],
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/savage/savage_bci.c:993:3: note: Taking false branch
                   if (copy_to_user(&d->request_indices[i],
                   ^
   drivers/gpu/drm/savage/savage_bci.c:996:7: note: Assuming the condition is false
                   if (copy_to_user(&d->request_sizes[i],
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/savage/savage_bci.c:996:3: note: Taking false branch
                   if (copy_to_user(&d->request_sizes[i],
                   ^
   drivers/gpu/drm/savage/savage_bci.c:986:29: note: Assuming 'i' is < field 'request_count'
           for (i = d->granted_count; i < d->request_count; i++) {
                                      ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/savage/savage_bci.c:986:2: note: Loop condition is true.  Entering loop body
           for (i = d->granted_count; i < d->request_count; i++) {
           ^
   drivers/gpu/drm/savage/savage_bci.c:987:9: note: Calling 'savage_freelist_get'
                   buf = savage_freelist_get(dev);
                         ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/savage/savage_bci.c:256:2: note: Field 'status_ptr' is non-null
           UPDATE_EVENT_COUNTER();
           ^
   drivers/gpu/drm/savage/savage_drv.h:562:16: note: expanded from macro 'UPDATE_EVENT_COUNTER'
           if (dev_priv->status_ptr) {                     \
                         ^
   drivers/gpu/drm/savage/savage_bci.c:256:2: note: Taking true branch
           UPDATE_EVENT_COUNTER();
           ^
   drivers/gpu/drm/savage/savage_drv.h:562:2: note: expanded from macro 'UPDATE_EVENT_COUNTER'
           if (dev_priv->status_ptr) {                     \
           ^
   drivers/gpu/drm/savage/savage_bci.c:256:2: note: 'count' is >= field 'event_counter'
           UPDATE_EVENT_COUNTER();
           ^
   drivers/gpu/drm/savage/savage_drv.h:566:7: note: expanded from macro 'UPDATE_EVENT_COUNTER'
                   if (count < dev_priv->event_counter)    \
                       ^~~~~
   drivers/gpu/drm/savage/savage_bci.c:256:2: note: Taking false branch
           UPDATE_EVENT_COUNTER();
           ^
   drivers/gpu/drm/savage/savage_drv.h:566:3: note: expanded from macro 'UPDATE_EVENT_COUNTER'
                   if (count < dev_priv->event_counter)    \
                   ^
   drivers/gpu/drm/savage/savage_bci.c:256:2: note: Loop condition is false.  Exiting loop
           UPDATE_EVENT_COUNTER();
           ^
   drivers/gpu/drm/savage/savage_drv.h:561:33: note: expanded from macro 'UPDATE_EVENT_COUNTER'
   #define UPDATE_EVENT_COUNTER( ) do {                    \
                                   ^
   drivers/gpu/drm/savage/savage_bci.c:257:16: note: Field 'status_ptr' is non-null
           if (dev_priv->status_ptr)
                         ^
   drivers/gpu/drm/savage/savage_bci.c:257:2: note: Taking true branch
           if (dev_priv->status_ptr)
           ^
   drivers/gpu/drm/savage/savage_bci.c:262:6: note: 'event' is <= field 'event_counter'
           if (event > dev_priv->event_counter)
               ^~~~~
   drivers/gpu/drm/savage/savage_bci.c:262:2: note: Taking false branch
           if (event > dev_priv->event_counter)
           ^
   drivers/gpu/drm/savage/savage_bci.c:268:12: note: Field 'buf' is non-null
           if (tail->buf && (TEST_AGE(&tail->age, event, wrap) || event == 0)) {
                     ^
   drivers/gpu/drm/savage/savage_bci.c:268:6: note: Left side of '&&' is true
           if (tail->buf && (TEST_AGE(&tail->age, event, wrap) || event == 0)) {
               ^
   drivers/gpu/drm/savage/savage_bci.c:268:20: note: 'wrap' is > field 'wrap'
           if (tail->buf && (TEST_AGE(&tail->age, event, wrap) || event == 0)) {
                             ^
   drivers/gpu/drm/savage/savage_drv.h:578:18: note: expanded from macro 'TEST_AGE'
           ( (age)->wrap < (w) || ( (age)->wrap == (w) && (age)->event <= (e) ) )
                           ^~~
   drivers/gpu/drm/savage/savage_bci.c:268:20: note: Left side of '||' is true
           if (tail->buf && (TEST_AGE(&tail->age, event, wrap) || event == 0)) {
                             ^
   drivers/gpu/drm/savage/savage_drv.h:578:22: note: expanded from macro 'TEST_AGE'
           ( (age)->wrap < (w) || ( (age)->wrap == (w) && (age)->event <= (e) ) )
                               ^
   drivers/gpu/drm/savage/savage_bci.c:270:3: note: 'prev' initialized to a null pointer value
                   drm_savage_buf_priv_t *prev = tail->prev;
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/savage/savage_bci.c:271:14: note: Access to field 'next' results in a dereference of a null pointer (loaded from variable 'prev')
                   prev->next = next;
                   ~~~~       ^
   Suppressed 5 warnings (5 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.
   12 warnings generated.
>> drivers/pci/controller/pci-aardvark.c:595:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &pcie->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:595:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = &pcie->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
>> drivers/pci/controller/pci-aardvark.c:682:3: warning: Value stored to 'str_posted' is never read [clang-analyzer-deadcode.DeadStores]
                   str_posted = "Non-posted";
                   ^            ~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:682:3: note: Value stored to 'str_posted' is never read
                   str_posted = "Non-posted";
                   ^            ~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:684:3: warning: Value stored to 'str_posted' is never read [clang-analyzer-deadcode.DeadStores]
                   str_posted = "Posted";
                   ^            ~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:684:3: note: Value stored to 'str_posted' is never read
                   str_posted = "Posted";
                   ^            ~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:1439:21: warning: The result of the left shift is undefined because the right operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
                           win_size = (1ULL << (fls64(size)-1)) |
                                            ^  ~~~~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:1396:6: note: Assuming 'bridge' is non-null
           if (!bridge)
               ^~~~~~~
   drivers/pci/controller/pci-aardvark.c:1396:2: note: Taking false branch
           if (!bridge)
           ^
   drivers/pci/controller/pci-aardvark.c:1403:2: note: Left side of '&&' is false
           resource_list_for_each_entry(entry, &bridge->windows) {
           ^
   include/linux/resource_ext.h:64:2: note: expanded from macro 'resource_list_for_each_entry'
           list_for_each_entry((entry), (list), node)
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/pci/controller/pci-aardvark.c:1403:2: note: Taking false branch
           resource_list_for_each_entry(entry, &bridge->windows) {
           ^
   include/linux/resource_ext.h:64:2: note: expanded from macro 'resource_list_for_each_entry'
           list_for_each_entry((entry), (list), node)
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/pci/controller/pci-aardvark.c:1403:2: note: Loop condition is false.  Exiting loop
           resource_list_for_each_entry(entry, &bridge->windows) {
           ^
   include/linux/resource_ext.h:64:2: note: expanded from macro 'resource_list_for_each_entry'
           list_for_each_entry((entry), (list), node)
           ^
   include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
                      ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^
   drivers/pci/controller/pci-aardvark.c:1403:2: note: Loop condition is true.  Entering loop body
           resource_list_for_each_entry(entry, &bridge->windows) {
           ^
   include/linux/resource_ext.h:64:2: note: expanded from macro 'resource_list_for_each_entry'
           list_for_each_entry((entry), (list), node)
           ^
   include/linux/list.h:628:2: note: expanded from macro 'list_for_each_entry'
           for (pos = list_first_entry(head, typeof(*pos), member);        \
           ^
   drivers/pci/controller/pci-aardvark.c:1415:7: note: Assuming 'type' is equal to IORESOURCE_MEM
                   if (type != IORESOURCE_MEM && type != IORESOURCE_MEM_64 &&
                       ^~~~~~~~~~~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:1415:30: note: Left side of '&&' is false
                   if (type != IORESOURCE_MEM && type != IORESOURCE_MEM_64 &&
                                              ^
   drivers/pci/controller/pci-aardvark.c:1424:8: note: 'type' is equal to IORESOURCE_MEM
                   if ((type == IORESOURCE_MEM || type == IORESOURCE_MEM_64) &&
                        ^~~~

vim +/dev +595 drivers/pci/controller/pci-aardvark.c

8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  592  
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  593  static int advk_pcie_check_pio_status(struct advk_pcie *pcie, bool allow_crs, u32 *val)
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  594  {
9aec2feaf787a7 drivers/pci/host/pci-aardvark.c       Bjorn Helgaas    2016-10-06 @595  	struct device *dev = &pcie->pdev->dev;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  596  	u32 reg;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  597  	unsigned int status;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  598  	char *strcomp_status, *str_posted;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  599  
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  600  	reg = advk_readl(pcie, PIO_STAT);
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  601  	status = (reg & PIO_COMPLETION_STATUS_MASK) >>
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  602  		PIO_COMPLETION_STATUS_SHIFT;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  603  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  604  	/*
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  605  	 * According to HW spec, the PIO status check sequence as below:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  606  	 * 1) even if COMPLETION_STATUS(bit9:7) indicates successful,
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  607  	 *    it still needs to check Error Status(bit11), only when this bit
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  608  	 *    indicates no error happen, the operation is successful.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  609  	 * 2) value Unsupported Request(1) of COMPLETION_STATUS(bit9:7) only
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  610  	 *    means a PIO write error, and for PIO read it is successful with
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  611  	 *    a read value of 0xFFFFFFFF.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  612  	 * 3) value Completion Retry Status(CRS) of COMPLETION_STATUS(bit9:7)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  613  	 *    only means a PIO write error, and for PIO read it is successful
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  614  	 *    with a read value of 0xFFFF0001.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  615  	 * 4) value Completer Abort (CA) of COMPLETION_STATUS(bit9:7) means
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  616  	 *    error for both PIO read and PIO write operation.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  617  	 * 5) other errors are indicated as 'unknown'.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  618  	 */
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  619  	switch (status) {
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  620  	case PIO_COMPLETION_STATUS_OK:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  621  		if (reg & PIO_ERR_STATUS) {
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  622  			strcomp_status = "COMP_ERR";
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  623  			break;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  624  		}
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  625  		/* Get the read result */
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  626  		if (val)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  627  			*val = advk_readl(pcie, PIO_RD_DATA);
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  628  		/* No error */
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  629  		strcomp_status = NULL;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  630  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  631  	case PIO_COMPLETION_STATUS_UR:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  632  		strcomp_status = "UR";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  633  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  634  	case PIO_COMPLETION_STATUS_CRS:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  635  		if (allow_crs && val) {
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  636  			/* PCIe r4.0, sec 2.3.2, says:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  637  			 * If CRS Software Visibility is enabled:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  638  			 * For a Configuration Read Request that includes both
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  639  			 * bytes of the Vendor ID field of a device Function's
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  640  			 * Configuration Space Header, the Root Complex must
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  641  			 * complete the Request to the host by returning a
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  642  			 * read-data value of 0001h for the Vendor ID field and
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  643  			 * all '1's for any additional bytes included in the
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  644  			 * request.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  645  			 *
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  646  			 * So CRS in this case is not an error status.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  647  			 */
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  648  			*val = CFG_RD_CRS_VAL;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  649  			strcomp_status = NULL;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  650  			break;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  651  		}
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  652  		/* PCIe r4.0, sec 2.3.2, says:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  653  		 * If CRS Software Visibility is not enabled, the Root Complex
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  654  		 * must re-issue the Configuration Request as a new Request.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  655  		 * If CRS Software Visibility is enabled: For a Configuration
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  656  		 * Write Request or for any other Configuration Read Request,
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  657  		 * the Root Complex must re-issue the Configuration Request as
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  658  		 * a new Request.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  659  		 * A Root Complex implementation may choose to limit the number
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  660  		 * of Configuration Request/CRS Completion Status loops before
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  661  		 * determining that something is wrong with the target of the
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  662  		 * Request and taking appropriate action, e.g., complete the
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  663  		 * Request to the host as a failed transaction.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  664  		 *
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  665  		 * To simplify implementation do not re-issue the Configuration
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  666  		 * Request and complete the Request as a failed transaction.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  667  		 */
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  668  		strcomp_status = "CRS";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  669  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  670  	case PIO_COMPLETION_STATUS_CA:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  671  		strcomp_status = "CA";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  672  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  673  	default:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  674  		strcomp_status = "Unknown";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  675  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  676  	}
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  677  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  678  	if (!strcomp_status)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  679  		return 0;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  680  
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  681  	if (reg & PIO_NON_POSTED_REQ)
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30 @682  		str_posted = "Non-posted";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  683  	else
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  684  		str_posted = "Posted";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  685  
464de7e7fff767 drivers/pci/controller/pci-aardvark.c Marek Behún      2021-10-05  686  	dev_dbg(dev, "%s PIO Response Status: %s, %#x @ %#x\n",
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  687  		str_posted, strcomp_status, reg, advk_readl(pcie, PIO_ADDR_LS));
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  688  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  689  	return -EFAULT;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  690  }
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  691  

:::::: The code at line 595 was first introduced by commit
:::::: 9aec2feaf787a766f802172e9021c7422029bc64 PCI: aardvark: Add local struct device pointers

:::::: TO: Bjorn Helgaas <bhelgaas@google.com>
:::::: CC: Bjorn Helgaas <bhelgaas@google.com>

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 4+ messages in thread

* drivers/pci/controller/pci-aardvark.c:595:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
@ 2021-12-12  5:56 kernel test robot
  0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2021-12-12  5:56 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 25775 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: "Marek Behún" <kabel@kernel.org>
CC: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   a763d5a5abd65797aec3dd1bf01fe2ccbec32967
commit: 464de7e7fff767e87429cd7be09c4f2cb50a6ccb PCI: aardvark: Don't spam about PIO Response Status
date:   9 weeks ago
:::::: branch date: 5 hours ago
:::::: commit date: 9 weeks ago
config: riscv-randconfig-c006-20211130 (https://download.01.org/0day-ci/archive/20211212/202112121327.GJb6ozIM-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 25eb7fa01d7ebbe67648ea03841cda55b4239ab2)
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://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=464de7e7fff767e87429cd7be09c4f2cb50a6ccb
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 464de7e7fff767e87429cd7be09c4f2cb50a6ccb
        # 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 >>)
                               ^~~~~~~~~~~~~~~~~
   fs/mpage.c:526:8: note: Left side of '||' is false
   fs/mpage.c:526:29: note: Assuming the condition is false
                           if (!buffer_dirty(bh) || !buffer_uptodate(bh))
                                                    ^~~~~~~~~~~~~~~~~~~~
   fs/mpage.c:526:4: note: Taking false branch
                           if (!buffer_dirty(bh) || !buffer_uptodate(bh))
                           ^
   fs/mpage.c:528:8: note: 'page_block' is 0
                           if (page_block) {
                               ^~~~~~~~~~
   fs/mpage.c:528:4: note: Taking false branch
                           if (page_block) {
                           ^
   fs/mpage.c:534:8: note: Assuming 'boundary' is 0
                           if (boundary) {
                               ^~~~~~~~
   fs/mpage.c:534:4: note: Taking false branch
                           if (boundary) {
                           ^
   fs/mpage.c:539:12: note: Assuming the condition is false
                   } while ((bh = bh->b_this_page) != head);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/mpage.c:509:3: note: Loop condition is false.  Exiting loop
                   do {
                   ^
   fs/mpage.c:541:7: note: Assuming 'first_unmapped' is not equal to 0
                   if (first_unmapped)
                       ^~~~~~~~~~~~~~
   fs/mpage.c:541:3: note: Taking true branch
                   if (first_unmapped)
                   ^
   fs/mpage.c:542:4: note: Control jumps to line 588
                           goto page_is_mapped;
                           ^
   fs/mpage.c:589:6: note: Assuming 'end_index' is > field 'index'
           if (page->index >= end_index) {
               ^~~~~~~~~~~~~~~~~~~~~~~~
   fs/mpage.c:589:2: note: Taking false branch
           if (page->index >= end_index) {
           ^
   fs/mpage.c:608:6: note: Assuming 'bio' is non-null
           if (bio && mpd->last_block_in_bio != blocks[0] - 1)
               ^~~
   fs/mpage.c:608:6: note: Left side of '&&' is true
   fs/mpage.c:608:13: note: Assuming the condition is false
           if (bio && mpd->last_block_in_bio != blocks[0] - 1)
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/mpage.c:608:2: note: Taking false branch
           if (bio && mpd->last_block_in_bio != blocks[0] - 1)
           ^
   fs/mpage.c:612:6: note: 'bio' is not equal to NULL
           if (bio == NULL) {
               ^~~
   fs/mpage.c:612:2: note: Taking false branch
           if (bio == NULL) {
           ^
   fs/mpage.c:634:6: note: Assuming the condition is false
           if (bio_add_page(bio, page, length, 0) < length) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/mpage.c:634:2: note: Taking false branch
           if (bio_add_page(bio, page, length, 0) < length) {
           ^
   fs/mpage.c:641:2: note: Assuming the condition is true
           BUG_ON(PageWriteback(page));
           ^
   include/asm-generic/bug.h:65:36: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                      ^~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                             ^~~~
   fs/mpage.c:641:2: note: Taking false branch
           BUG_ON(PageWriteback(page));
           ^
   include/asm-generic/bug.h:65:32: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                                  ^
   fs/mpage.c:641:2: note: Loop condition is false.  Exiting loop
           BUG_ON(PageWriteback(page));
           ^
   include/asm-generic/bug.h:65:27: note: expanded from macro 'BUG_ON'
   #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
                             ^
   fs/mpage.c:644:6: note: 'boundary' is 0
           if (boundary || (first_unmapped != blocks_per_page)) {
               ^~~~~~~~
   fs/mpage.c:644:6: note: Left side of '||' is false
   fs/mpage.c:644:19: note: 'first_unmapped' is equal to 'blocks_per_page'
           if (boundary || (first_unmapped != blocks_per_page)) {
                            ^~~~~~~~~~~~~~
   fs/mpage.c:644:2: note: Taking false branch
           if (boundary || (first_unmapped != blocks_per_page)) {
           ^
   fs/mpage.c:651:26: note: Assigned value is garbage or undefined
                   mpd->last_block_in_bio = blocks[blocks_per_page - 1];
                                          ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 2 warnings (2 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.
   5 warnings generated.
>> drivers/pci/controller/pci-aardvark.c:595:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = &pcie->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:595:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = &pcie->pdev->dev;
                          ^~~   ~~~~~~~~~~~~~~~~
>> drivers/pci/controller/pci-aardvark.c:682:3: warning: Value stored to 'str_posted' is never read [clang-analyzer-deadcode.DeadStores]
                   str_posted = "Non-posted";
                   ^            ~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:682:3: note: Value stored to 'str_posted' is never read
                   str_posted = "Non-posted";
                   ^            ~~~~~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:684:3: warning: Value stored to 'str_posted' is never read [clang-analyzer-deadcode.DeadStores]
                   str_posted = "Posted";
                   ^            ~~~~~~~~
   drivers/pci/controller/pci-aardvark.c:684:3: note: Value stored to 'str_posted' is never read
                   str_posted = "Posted";
                   ^            ~~~~~~~~
   Suppressed 2 warnings (2 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.
   3 warnings generated.
   Suppressed 3 warnings (2 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.
   2 warnings generated.
   Suppressed 2 warnings (2 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.
   include/linux/list.h:135:13: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
           __list_del(entry->prev, entry->next);
                      ^
   drivers/dma/tegra20-apb-dma.c:1329:2: note: Loop condition is false.  Exiting loop
           dev_dbg(tdc2dev(tdc), "Freeing channel %d\n", tdc->id);
           ^
   include/linux/dev_printk.h:158:2: note: expanded from macro 'dev_dbg'
           dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dev_printk.h:128:3: note: expanded from macro 'dev_printk'
                   dev_printk_index_emit(level, fmt);                      \
                   ^
   include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
           printk_index_subsys_emit("%s %s: ", level, fmt)
           ^
   include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
           __printk_index_emit(fmt, level, subsys_fmt_prefix)
           ^
   include/linux/printk.h:392:34: note: expanded from macro '__printk_index_emit'
   #define __printk_index_emit(...) do {} while (0)
                                    ^
   drivers/dma/tegra20-apb-dma.c:1341:2: note: Loop condition is true.  Entering loop body
           while (!list_empty(&dma_desc_list)) {
           ^
   drivers/dma/tegra20-apb-dma.c:1342:14: note: Left side of '&&' is false
                   dma_desc = list_first_entry(&dma_desc_list, typeof(*dma_desc),
                              ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   drivers/dma/tegra20-apb-dma.c:1342:14: note: Taking false branch
                   dma_desc = list_first_entry(&dma_desc_list, typeof(*dma_desc),
                              ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   drivers/dma/tegra20-apb-dma.c:1342:14: note: Loop condition is false.  Exiting loop
                   dma_desc = list_first_entry(&dma_desc_list, typeof(*dma_desc),
                              ^
   include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
           list_entry((ptr)->next, type, member)
           ^
   include/linux/list.h:511:2: note: expanded from macro 'list_entry'
           container_of(ptr, type, member)
           ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
           do {                                                            \
           ^

vim +/dev +595 drivers/pci/controller/pci-aardvark.c

8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  592  
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  593  static int advk_pcie_check_pio_status(struct advk_pcie *pcie, bool allow_crs, u32 *val)
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  594  {
9aec2feaf787a7 drivers/pci/host/pci-aardvark.c       Bjorn Helgaas    2016-10-06 @595  	struct device *dev = &pcie->pdev->dev;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  596  	u32 reg;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  597  	unsigned int status;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  598  	char *strcomp_status, *str_posted;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  599  
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  600  	reg = advk_readl(pcie, PIO_STAT);
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  601  	status = (reg & PIO_COMPLETION_STATUS_MASK) >>
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  602  		PIO_COMPLETION_STATUS_SHIFT;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  603  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  604  	/*
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  605  	 * According to HW spec, the PIO status check sequence as below:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  606  	 * 1) even if COMPLETION_STATUS(bit9:7) indicates successful,
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  607  	 *    it still needs to check Error Status(bit11), only when this bit
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  608  	 *    indicates no error happen, the operation is successful.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  609  	 * 2) value Unsupported Request(1) of COMPLETION_STATUS(bit9:7) only
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  610  	 *    means a PIO write error, and for PIO read it is successful with
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  611  	 *    a read value of 0xFFFFFFFF.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  612  	 * 3) value Completion Retry Status(CRS) of COMPLETION_STATUS(bit9:7)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  613  	 *    only means a PIO write error, and for PIO read it is successful
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  614  	 *    with a read value of 0xFFFF0001.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  615  	 * 4) value Completer Abort (CA) of COMPLETION_STATUS(bit9:7) means
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  616  	 *    error for both PIO read and PIO write operation.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  617  	 * 5) other errors are indicated as 'unknown'.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  618  	 */
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  619  	switch (status) {
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  620  	case PIO_COMPLETION_STATUS_OK:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  621  		if (reg & PIO_ERR_STATUS) {
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  622  			strcomp_status = "COMP_ERR";
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  623  			break;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  624  		}
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  625  		/* Get the read result */
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  626  		if (val)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  627  			*val = advk_readl(pcie, PIO_RD_DATA);
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  628  		/* No error */
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  629  		strcomp_status = NULL;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  630  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  631  	case PIO_COMPLETION_STATUS_UR:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  632  		strcomp_status = "UR";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  633  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  634  	case PIO_COMPLETION_STATUS_CRS:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  635  		if (allow_crs && val) {
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  636  			/* PCIe r4.0, sec 2.3.2, says:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  637  			 * If CRS Software Visibility is enabled:
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  638  			 * For a Configuration Read Request that includes both
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  639  			 * bytes of the Vendor ID field of a device Function's
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  640  			 * Configuration Space Header, the Root Complex must
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  641  			 * complete the Request to the host by returning a
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  642  			 * read-data value of 0001h for the Vendor ID field and
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  643  			 * all '1's for any additional bytes included in the
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  644  			 * request.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  645  			 *
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  646  			 * So CRS in this case is not an error status.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  647  			 */
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  648  			*val = CFG_RD_CRS_VAL;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  649  			strcomp_status = NULL;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  650  			break;
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  651  		}
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  652  		/* PCIe r4.0, sec 2.3.2, says:
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  653  		 * If CRS Software Visibility is not enabled, the Root Complex
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  654  		 * must re-issue the Configuration Request as a new Request.
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  655  		 * If CRS Software Visibility is enabled: For a Configuration
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  656  		 * Write Request or for any other Configuration Read Request,
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  657  		 * the Root Complex must re-issue the Configuration Request as
43f5c77bcbd27c drivers/pci/controller/pci-aardvark.c Pali Rohár       2021-07-22  658  		 * a new Request.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  659  		 * A Root Complex implementation may choose to limit the number
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  660  		 * of Configuration Request/CRS Completion Status loops before
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  661  		 * determining that something is wrong with the target of the
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  662  		 * Request and taking appropriate action, e.g., complete the
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  663  		 * Request to the host as a failed transaction.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  664  		 *
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  665  		 * To simplify implementation do not re-issue the Configuration
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  666  		 * Request and complete the Request as a failed transaction.
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  667  		 */
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  668  		strcomp_status = "CRS";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  669  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  670  	case PIO_COMPLETION_STATUS_CA:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  671  		strcomp_status = "CA";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  672  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  673  	default:
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  674  		strcomp_status = "Unknown";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  675  		break;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  676  	}
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  677  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  678  	if (!strcomp_status)
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  679  		return 0;
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  680  
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  681  	if (reg & PIO_NON_POSTED_REQ)
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30 @682  		str_posted = "Non-posted";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  683  	else
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  684  		str_posted = "Posted";
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  685  
464de7e7fff767 drivers/pci/controller/pci-aardvark.c Marek Behún      2021-10-05  686  	dev_dbg(dev, "%s PIO Response Status: %s, %#x @ %#x\n",
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  687  		str_posted, strcomp_status, reg, advk_readl(pcie, PIO_ADDR_LS));
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  688  
fcb461e2bc8b83 drivers/pci/controller/pci-aardvark.c Evan Wang        2021-07-22  689  	return -EFAULT;
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  690  }
8c39d710363c14 drivers/pci/host/pci-aardvark.c       Thomas Petazzoni 2016-06-30  691  

:::::: The code at line 595 was first introduced by commit
:::::: 9aec2feaf787a766f802172e9021c7422029bc64 PCI: aardvark: Add local struct device pointers

:::::: TO: Bjorn Helgaas <bhelgaas@google.com>
:::::: CC: Bjorn Helgaas <bhelgaas@google.com>

---
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] 4+ messages in thread

end of thread, other threads:[~2022-03-19  5:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-05 19:49 drivers/pci/controller/pci-aardvark.c:595:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
2021-12-12  5:56 kernel test robot
2022-03-13 14:35 kernel test robot
2022-03-19  5:31 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.