[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 1/4] PCI: Introduce pci_dev_for_each_resource()



Hi Andy,

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/PCI-Introduce-pci_dev_for_each_resource/20230311-011642
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link:    
https://lore.kernel.org/r/20230310171416.23356-2-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v4 1/4] PCI: Introduce pci_dev_for_each_resource()
config: x86_64-randconfig-m001 
(https://download.01.org/0day-ci/archive/20230311/202303112149.xD47qKOY-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <error27@xxxxxxxxx>
| Link: https://lore.kernel.org/r/202303112149.xD47qKOY-lkp@xxxxxxxxx/

smatch warnings:
drivers/pnp/quirks.c:248 quirk_system_pci_resources() warn: was && intended 
here instead of ||?

vim +248 drivers/pnp/quirks.c

0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  229  static void 
quirk_system_pci_resources(struct pnp_dev *dev)
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  230  {
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  231          struct pci_dev *pdev = 
NULL;
059b4a086017fb Mika Westerberg 2023-03-10  232          struct resource *res, 
*r;
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  233          int i, j;
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  234  
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  235          /*
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  236           * Some BIOSes have PNP 
motherboard devices with resources that
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  237           * partially overlap 
PCI BARs.  The PNP system driver claims these
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  238           * motherboard 
resources, which prevents the normal PCI driver from
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  239           * requesting them 
later.
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  240           *
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  241           * This patch disables 
the PNP resources that conflict with PCI BARs
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  242           * so they won't be 
claimed by the PNP system driver.
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  243           */
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  244          for_each_pci_dev(pdev) {
059b4a086017fb Mika Westerberg 2023-03-10  245                  
pci_dev_for_each_resource(pdev, r, i) {
059b4a086017fb Mika Westerberg 2023-03-10  246                          
unsigned long type = resource_type(r);
999ed65ad12e37 Rene Herman     2008-07-25  247  
059b4a086017fb Mika Westerberg 2023-03-10 @248                          if 
(type != IORESOURCE_IO || type != IORESOURCE_MEM ||
                                                                                
                  ^^
This || needs to be &&.  This loop will always hit the continue path
without doing anything.

059b4a086017fb Mika Westerberg 2023-03-10  249                              
resource_size(r) == 0)
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  250                                  
continue;
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  251  
059b4a086017fb Mika Westerberg 2023-03-10  252                          if 
(r->flags & IORESOURCE_UNSET)
f7834c092c4299 Bjorn Helgaas   2015-03-03  253                                  
continue;
f7834c092c4299 Bjorn Helgaas   2015-03-03  254  
95ab3669f78306 Bjorn Helgaas   2008-04-28  255                          for (j 
= 0;
999ed65ad12e37 Rene Herman     2008-07-25  256                               
(res = pnp_get_resource(dev, type, j)); j++) {
aee3ad815dd291 Bjorn Helgaas   2008-06-27  257                                  
if (res->start == 0 && res->end == 0)
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  258                                  
        continue;
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  259  
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  260                                  
/*
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  261                                  
 * If the PNP region doesn't overlap the PCI
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  262                                  
 * region at all, there's no problem.
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  263                                  
 */
059b4a086017fb Mika Westerberg 2023-03-10  264                                  
if (!resource_overlaps(res, r))
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  265                                  
        continue;
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  266  
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  267                                  
/*
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  268                                  
 * If the PNP region completely encloses (or is
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  269                                  
 * at least as large as) the PCI region, that's
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  270                                  
 * also OK.  For example, this happens when the
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  271                                  
 * PNP device describes a bridge with PCI
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  272                                  
 * behind it.
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  273                                  
 */
059b4a086017fb Mika Westerberg 2023-03-10  274                                  
if (res->start <= r->start && res->end >= r->end)
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  275                                  
        continue;
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  276  
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  277                                  
/*
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  278                                  
 * Otherwise, the PNP region overlaps *part* of
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  279                                  
 * the PCI region, and that might prevent a PCI
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  280                                  
 * driver from requesting its resources.
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  281                                  
 */
c7dabef8a2c59e Bjorn Helgaas   2009-10-27  282                                  
dev_warn(&dev->dev,
059b4a086017fb Mika Westerberg 2023-03-10  283                                  
         "disabling %pR because it overlaps %s BAR %d %pR\n",
059b4a086017fb Mika Westerberg 2023-03-10  284                                  
         res, pci_name(pdev), i, r);
4b34fe156455d2 Bjorn Helgaas   2008-06-02  285                                  
res->flags |= IORESOURCE_DISABLED;
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  286                          }
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  287                  }
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  288          }
0509ad5e1a7d92 Bjorn Helgaas   2008-03-11  289  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.