summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/pci/pci_pci.c6
-rw-r--r--sys/dev/pci/pcivar.h5
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
OpenPOWER on IntegriCloud