* 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.