diff options
author | Maciej W. Rozycki <macro@orcam.me.uk> | 2022-03-31 10:11:01 +0300 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2022-04-10 13:48:14 +0300 |
commit | ac7cd5e16df8696c39e29b03dfedf069a025b822 (patch) | |
tree | bdb7414657f1f0106fd151ff1d7ca68e16ea41b2 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 5d64089aa4a5bd3d7e00e3d6ddf4943dd34627b3 (diff) | |
download | linux-ac7cd5e16df8696c39e29b03dfedf069a025b822.tar.xz |
x86/PCI: Handle PIRQ routing tables with no router device given
PIRQ routing tables provided by the PCI BIOS usually specify the PCI
vendor:device ID as well as the bus address of the device implementing
the PIRQ router, e.g.:
PCI: Interrupt Routing Table found at 0xc00fde10
[...]
PCI: Attempting to find IRQ router for [8086:7000]
pci 0000:00:07.0: PIIX/ICH IRQ router [8086:7000]
however in some cases they do not, in which case we fail to match the
router handler, e.g.:
PCI: Interrupt Routing Table found at 0xc00fdae0
[...]
PCI: Attempting to find IRQ router for [0000:0000]
PCI: Interrupt router not found at 00:00
This is because we always match the vendor:device ID and the bus address
literally, even if they are all zeros.
Handle this case then and iterate over all PCI devices until we find a
matching router handler if the vendor ID given by the routing table is
the invalid value of zero:
PCI: Attempting to find IRQ router for [0000:0000]
PCI: Trying IRQ router for [1039:0496]
pci 0000:00:05.0: SiS85C497 IRQ router [1039:0496]
Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Nikolai Zhubr <zhubr.2@gmail.com>
Link: https://lore.kernel.org/r/alpine.DEB.2.21.2203302018570.9038@angie.orcam.me.uk
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions