oe-kbuild-all.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH v4 1/4] PCI: Introduce pci_dev_for_each_resource()
       [not found] <20230310171416.23356-2-andriy.shevchenko@linux.intel.com>
@ 2023-03-10 21:51 ` kernel test robot
  2023-03-11 13:54 ` Dan Carpenter
  1 sibling, 0 replies; 3+ messages in thread
From: kernel test robot @ 2023-03-10 21:51 UTC (permalink / raw)
  To: Andy Shevchenko, Mickaël Salaün, Mika Westerberg,
	Krzysztof Wilczyński, Michael Ellerman, Randy Dunlap,
	Arnd Bergmann, Bjorn Helgaas, Rafael J. Wysocki, Niklas Schnelle,
	Pali Rohár, Maciej W. Rozycki, Juergen Gross,
	Dominik Brodowski, linux-kernel, linux-alpha, linux-arm-kernel,
	linux-mips, linuxppc-dev, linux-sh, sparclinux, linux-pci,
	xen-devel, linux-acpi
  Cc: oe-kbuild-all, Miguel Ojeda, Richard Henderson, Ivan Kokshaysky,
	Matt Turner, Russell King, Andrew Lunn

Hi Andy,

I love your patch! Yet something to improve:

[auto build test ERROR on pci/next]
[also build test ERROR on pci/for-linus powerpc/next powerpc/fixes linus/master v6.3-rc1 next-20230310]
[cannot apply to soc/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
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: m68k-allyesconfig (https://download.01.org/0day-ci/archive/20230311/202303110550.BLo6P5dS-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 12.1.0
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
        # https://github.com/intel-lab-lkp/linux/commit/059b4a086017fbf2baacdbe0cc454f569f618ffd
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Andy-Shevchenko/PCI-Introduce-pci_dev_for_each_resource/20230311-011642
        git checkout 059b4a086017fbf2baacdbe0cc454f569f618ffd
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash drivers/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303110550.BLo6P5dS-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/pnp/quirks.c: In function 'quirk_system_pci_resources':
>> drivers/pnp/quirks.c:245:17: error: implicit declaration of function 'pci_dev_for_each_resource' [-Werror=implicit-function-declaration]
     245 |                 pci_dev_for_each_resource(pdev, r, i) {
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/pnp/quirks.c:245:54: error: expected ';' before '{' token
     245 |                 pci_dev_for_each_resource(pdev, r, i) {
         |                                                      ^~
         |                                                      ;
   drivers/pnp/quirks.c:233:16: warning: unused variable 'j' [-Wunused-variable]
     233 |         int i, j;
         |                ^
   drivers/pnp/quirks.c:232:26: warning: unused variable 'res' [-Wunused-variable]
     232 |         struct resource *res, *r;
         |                          ^~~
   cc1: some warnings being treated as errors


vim +/pci_dev_for_each_resource +245 drivers/pnp/quirks.c

   228	
   229	static void quirk_system_pci_resources(struct pnp_dev *dev)
   230	{
   231		struct pci_dev *pdev = NULL;
   232		struct resource *res, *r;
   233		int i, j;
   234	
   235		/*
   236		 * Some BIOSes have PNP motherboard devices with resources that
   237		 * partially overlap PCI BARs.  The PNP system driver claims these
   238		 * motherboard resources, which prevents the normal PCI driver from
   239		 * requesting them later.
   240		 *
   241		 * This patch disables the PNP resources that conflict with PCI BARs
   242		 * so they won't be claimed by the PNP system driver.
   243		 */
   244		for_each_pci_dev(pdev) {
 > 245			pci_dev_for_each_resource(pdev, r, i) {
   246				unsigned long type = resource_type(r);
   247	
   248				if (type != IORESOURCE_IO || type != IORESOURCE_MEM ||
   249				    resource_size(r) == 0)
   250					continue;
   251	
   252				if (r->flags & IORESOURCE_UNSET)
   253					continue;
   254	
   255				for (j = 0;
   256				     (res = pnp_get_resource(dev, type, j)); j++) {
   257					if (res->start == 0 && res->end == 0)
   258						continue;
   259	
   260					/*
   261					 * If the PNP region doesn't overlap the PCI
   262					 * region at all, there's no problem.
   263					 */
   264					if (!resource_overlaps(res, r))
   265						continue;
   266	
   267					/*
   268					 * If the PNP region completely encloses (or is
   269					 * at least as large as) the PCI region, that's
   270					 * also OK.  For example, this happens when the
   271					 * PNP device describes a bridge with PCI
   272					 * behind it.
   273					 */
   274					if (res->start <= r->start && res->end >= r->end)
   275						continue;
   276	
   277					/*
   278					 * Otherwise, the PNP region overlaps *part* of
   279					 * the PCI region, and that might prevent a PCI
   280					 * driver from requesting its resources.
   281					 */
   282					dev_warn(&dev->dev,
   283						 "disabling %pR because it overlaps %s BAR %d %pR\n",
   284						 res, pci_name(pdev), i, r);
   285					res->flags |= IORESOURCE_DISABLED;
   286				}
   287			}
   288		}
   289	}
   290	

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

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

* Re: [PATCH v4 1/4] PCI: Introduce pci_dev_for_each_resource()
       [not found] <20230310171416.23356-2-andriy.shevchenko@linux.intel.com>
  2023-03-10 21:51 ` [PATCH v4 1/4] PCI: Introduce pci_dev_for_each_resource() kernel test robot
@ 2023-03-11 13:54 ` Dan Carpenter
  2023-03-14 18:43   ` Andy Shevchenko
  1 sibling, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2023-03-11 13:54 UTC (permalink / raw)
  To: oe-kbuild, Andy Shevchenko, Mickaël Salaün,
	Mika Westerberg, Krzysztof Wilczyński, Michael Ellerman,
	Randy Dunlap, Arnd Bergmann, Bjorn Helgaas, Rafael J. Wysocki,
	Niklas Schnelle, Pali Rohár, Maciej W. Rozycki,
	Juergen Gross, Dominik Brodowski, linux-kernel, linux-alpha,
	linux-arm-kernel, linux-mips, linuxppc-dev, linux-sh, sparclinux,
	linux-pci, xen-devel, linux-acpi
  Cc: lkp, oe-kbuild-all, Miguel Ojeda, Richard Henderson,
	Ivan Kokshaysky, Matt Turner, Russell King, Andrew Lunn

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@intel.com/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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Link: https://lore.kernel.org/r/202303112149.xD47qKOY-lkp@intel.com/

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


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

* Re: [PATCH v4 1/4] PCI: Introduce pci_dev_for_each_resource()
  2023-03-11 13:54 ` Dan Carpenter
@ 2023-03-14 18:43   ` Andy Shevchenko
  0 siblings, 0 replies; 3+ messages in thread
From: Andy Shevchenko @ 2023-03-14 18:43 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: oe-kbuild, Mickaël Salaün, Mika Westerberg,
	Krzysztof Wilczyński, Michael Ellerman, Randy Dunlap,
	Arnd Bergmann, Bjorn Helgaas, Rafael J. Wysocki, Niklas Schnelle,
	Pali Rohár, Maciej W. Rozycki, Juergen Gross,
	Dominik Brodowski, linux-kernel, linux-alpha, linux-arm-kernel,
	linux-mips, linuxppc-dev, linux-sh, sparclinux, linux-pci,
	xen-devel, linux-acpi, lkp, oe-kbuild-all, Miguel Ojeda,
	Richard Henderson, Ivan Kokshaysky, Matt Turner, Russell King,
	Andrew Lunn

On Sat, Mar 11, 2023 at 04:54:32PM +0300, Dan Carpenter wrote:

> 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;

Thanks, I'll fix in v5.

-- 
With Best Regards,
Andy Shevchenko



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

end of thread, other threads:[~2023-03-14 18:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20230310171416.23356-2-andriy.shevchenko@linux.intel.com>
2023-03-10 21:51 ` [PATCH v4 1/4] PCI: Introduce pci_dev_for_each_resource() kernel test robot
2023-03-11 13:54 ` Dan Carpenter
2023-03-14 18:43   ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).