diff options
-rw-r--r-- | sys/dev/pci/pci_pci.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/pcivar.h | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 9c1de44..8b5eef5 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -409,7 +409,9 @@ pcib_route_interrupt(device_t pcib, device_t dev, int pin) */ bus = device_get_parent(pcib); intnum = PCIB_ROUTE_INTERRUPT(device_get_parent(bus), pcib, parent_intpin + 1); - device_printf(pcib, "routed slot %d INT%c to irq %d\n", pci_get_slot(dev), - 'A' + pin - 1, intnum); + if (PCI_INTERRUPT_VALID(intnum)) { + device_printf(pcib, "routed slot %d INT%c to irq %d\n", pci_get_slot(dev), + 'A' + pin - 1, intnum); + } return(intnum); } diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index 432f885..0b8cf14 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -246,6 +246,11 @@ PCIB_ACCESSOR(bus, BUS, u_int32_t) #undef PCIB_ACCESSOR /* + * PCI interrupt validation. + */ +#define PCI_INTERRUPT_VALID(x) (((x) != 0) && ((x) != 255)) + +/* * Convenience functions. * * These should be used in preference to manually manipulating |