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