From: kernel test robot <lkp@intel.com>
To: Zhou Shengqing <zhoushengqing@ttyinfo.com>,
Bjorn Helgaas <helgaas@kernel.org>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, zhoushengqing@ttyinfo.com
Subject: Re: [PATCH] PCI: Enable io space 1k granularity for intel cpu root port
Date: Wed, 26 Jun 2024 16:27:50 +0800 [thread overview]
Message-ID: <202406261552.dr7kOKOM-lkp@intel.com> (raw)
In-Reply-To: <20240621020608.28964-1-zhoushengqing@ttyinfo.com>
Hi Zhou,
kernel test robot noticed the following build errors:
[auto build test ERROR on pci/next]
[also build test ERROR on pci/for-linus linus/master v6.10-rc5 next-20240625]
[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/Zhou-Shengqing/PCI-Enable-io-space-1k-granularity-for-intel-cpu-root-port/20240625-161818
base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link: https://lore.kernel.org/r/20240621020608.28964-1-zhoushengqing%40ttyinfo.com
patch subject: [PATCH] PCI: Enable io space 1k granularity for intel cpu root port
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20240626/202406261552.dr7kOKOM-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240626/202406261552.dr7kOKOM-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202406261552.dr7kOKOM-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from include/linux/smp.h:12,
from include/linux/lockdep.h:14,
from include/linux/spinlock.h:63,
from include/linux/sched.h:2142,
from include/linux/delay.h:23,
from drivers/pci/probe.c:7:
drivers/pci/probe.c: In function 'pci_read_bridge_windows':
>> drivers/pci/probe.c:484:45: error: 'dev' undeclared (first use in this function); did you mean 'cdev'?
484 | list_for_each_entry(dev, &bridge->bus->devices, bus_list) {
| ^~~
include/linux/list.h:778:14: note: in definition of macro 'list_for_each_entry'
778 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~
drivers/pci/probe.c:484:45: note: each undeclared identifier is reported only once for each function it appears in
484 | list_for_each_entry(dev, &bridge->bus->devices, bus_list) {
| ^~~
include/linux/list.h:778:14: note: in definition of macro 'list_for_each_entry'
778 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~
In file included from include/linux/container_of.h:5,
from include/linux/kernel.h:22,
from drivers/pci/probe.c:6:
include/linux/compiler_types.h:428:27: error: expression in static assertion is not an integer
428 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert'
20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
include/linux/container_of.h:20:23: note: in expansion of macro '__same_type'
20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
include/linux/list.h:601:9: note: in expansion of macro 'container_of'
601 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:612:9: note: in expansion of macro 'list_entry'
612 | list_entry((ptr)->next, type, member)
| ^~~~~~~~~~
include/linux/list.h:778:20: note: in expansion of macro 'list_first_entry'
778 | for (pos = list_first_entry(head, typeof(*pos), member); \
| ^~~~~~~~~~~~~~~~
drivers/pci/probe.c:484:25: note: in expansion of macro 'list_for_each_entry'
484 | list_for_each_entry(dev, &bridge->bus->devices, bus_list) {
| ^~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:428:27: error: expression in static assertion is not an integer
428 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert'
20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~~~
include/linux/container_of.h:20:23: note: in expansion of macro '__same_type'
20 | static_assert(__same_type(*(ptr), ((type *)0)->member) || \
| ^~~~~~~~~~~
include/linux/list.h:601:9: note: in expansion of macro 'container_of'
601 | container_of(ptr, type, member)
| ^~~~~~~~~~~~
include/linux/list.h:645:9: note: in expansion of macro 'list_entry'
645 | list_entry((pos)->member.next, typeof(*(pos)), member)
| ^~~~~~~~~~
include/linux/list.h:780:20: note: in expansion of macro 'list_next_entry'
780 | pos = list_next_entry(pos, member))
| ^~~~~~~~~~~~~~~
drivers/pci/probe.c:484:25: note: in expansion of macro 'list_for_each_entry'
484 | list_for_each_entry(dev, &bridge->bus->devices, bus_list) {
| ^~~~~~~~~~~~~~~~~~~
vim +484 drivers/pci/probe.c
458
459 static void pci_read_bridge_windows(struct pci_dev *bridge)
460 {
461 u32 buses;
462 u16 io;
463 u32 pmem, tmp;
464 u16 ven_id, dev_id;
465 u16 en1k = 0;
466 struct resource res;
467
468 pci_read_config_dword(bridge, PCI_PRIMARY_BUS, &buses);
469 res.flags = IORESOURCE_BUS;
470 res.start = (buses >> 8) & 0xff;
471 res.end = (buses >> 16) & 0xff;
472 pci_info(bridge, "PCI bridge to %pR%s\n", &res,
473 bridge->transparent ? " (subtractive decode)" : "");
474
475 pci_read_config_word(bridge, PCI_IO_BASE, &io);
476 if (!io) {
477 pci_write_config_word(bridge, PCI_IO_BASE, 0xe0f0);
478 pci_read_config_word(bridge, PCI_IO_BASE, &io);
479 pci_write_config_word(bridge, PCI_IO_BASE, 0x0);
480 }
481 if (io) {
482 bridge->io_window = 1;
483 if (pci_is_root_bus(bridge->bus)) {
> 484 list_for_each_entry(dev, &bridge->bus->devices, bus_list) {
485 pci_read_config_word(dev, PCI_VENDOR_ID, &ven_id);
486 pci_read_config_word(dev, PCI_DEVICE_ID, &dev_id);
487 if (ven_id == PCI_VENDOR_ID_INTEL && dev_id == 0x09a2) {
488 /*IIO MISC Control offset 0x1c0*/
489 pci_read_config_word(dev, 0x1c0, &en1k);
490 }
491 }
492 /*
493 *Intel ICX SPR EMR GNR
494 *IIO MISC Control (IIOMISCCTRL_1_5_0_CFG) — Offset 1C0h
495 *bit 2:Enable 1K (EN1K)
496 *This bit when set, enables 1K granularity for I/O space decode
497 *in each of the virtual P2P bridges
498 *corresponding to root ports, and DMI ports.
499 */
500 if (en1k & 0x4)
501 bridge->io_window_1k = 1;
502 }
503 pci_read_bridge_io(bridge, &res, true);
504 }
505
506 pci_read_bridge_mmio(bridge, &res, true);
507
508 /*
509 * DECchip 21050 pass 2 errata: the bridge may miss an address
510 * disconnect boundary by one PCI data phase. Workaround: do not
511 * use prefetching on this device.
512 */
513 if (bridge->vendor == PCI_VENDOR_ID_DEC && bridge->device == 0x0001)
514 return;
515
516 pci_read_config_dword(bridge, PCI_PREF_MEMORY_BASE, &pmem);
517 if (!pmem) {
518 pci_write_config_dword(bridge, PCI_PREF_MEMORY_BASE,
519 0xffe0fff0);
520 pci_read_config_dword(bridge, PCI_PREF_MEMORY_BASE, &pmem);
521 pci_write_config_dword(bridge, PCI_PREF_MEMORY_BASE, 0x0);
522 }
523 if (!pmem)
524 return;
525
526 bridge->pref_window = 1;
527
528 if ((pmem & PCI_PREF_RANGE_TYPE_MASK) == PCI_PREF_RANGE_TYPE_64) {
529
530 /*
531 * Bridge claims to have a 64-bit prefetchable memory
532 * window; verify that the upper bits are actually
533 * writable.
534 */
535 pci_read_config_dword(bridge, PCI_PREF_BASE_UPPER32, &pmem);
536 pci_write_config_dword(bridge, PCI_PREF_BASE_UPPER32,
537 0xffffffff);
538 pci_read_config_dword(bridge, PCI_PREF_BASE_UPPER32, &tmp);
539 pci_write_config_dword(bridge, PCI_PREF_BASE_UPPER32, pmem);
540 if (tmp)
541 bridge->pref_64_window = 1;
542 }
543
544 pci_read_bridge_mmio_pref(bridge, &res, true);
545 }
546
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-06-26 8:28 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-21 2:06 [PATCH] PCI: Enable io space 1k granularity for intel cpu root port Zhou Shengqing
2024-06-21 21:02 ` Bjorn Helgaas
2024-06-22 15:06 ` zhoushengqing
2024-06-22 17:52 ` Bjorn Helgaas
2024-06-23 2:26 ` Zhou Shengqing
2024-06-24 8:01 ` Zhou Shengqing
2024-06-26 8:27 ` kernel test robot [this message]
2024-06-26 10:09 ` kernel test robot
2024-06-26 11:19 ` [PATCH v2] [PATCH v2] " Zhou Shengqing
2024-06-26 15:26 ` Bjorn Helgaas
2024-06-27 0:58 ` [PATCH v3] " Zhou Shengqing
2024-06-29 21:34 ` Bjorn Helgaas
2024-06-30 2:52 ` Re: [PATCH] " Zhou Shengqing
2024-07-01 21:06 ` Bjorn Helgaas
2024-07-02 3:56 ` [PATCH v4] Subject: " Zhou Shengqing
2024-07-12 18:48 ` Bjorn Helgaas
2024-07-23 8:04 ` Zhou Shengqing
2024-07-24 2:34 ` Ethan Zhao
2024-07-24 3:38 ` Zhou Shengqing
2024-07-24 5:39 ` Ethan Zhao
2024-07-24 6:35 ` [PATCH v4] " Zhou Shengqing
2024-07-24 7:51 ` Ethan Zhao
2024-07-25 7:44 ` Zhou Shengqing
2024-07-26 2:27 ` Ethan Zhao
2024-07-02 5:49 ` Re: Re: [PATCH] PCI: Enable io space 1k granularity for Zhou Shengqing
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202406261552.dr7kOKOM-lkp@intel.com \
--to=lkp@intel.com \
--cc=helgaas@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=zhoushengqing@ttyinfo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.