pci: Don't allow PCIBIOS PCI-PCI bridge to attach if APIC_IO is defined
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Sat, 4 Jul 2009 11:31:21 +0000 (19:31 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 8 Jul 2009 10:50:40 +0000 (18:50 +0800)
PCIBIOS PCI-PCI bridge will try routing PCI interrupt using PIR, which
is probably not what we want, even if MP table does not contain the PCI
interrupt routing information.

sys/bus/pci/pci_pci.c

index 377249a..75dcd1b 100644 (file)
@@ -126,7 +126,12 @@ pcib_probe(device_t dev)
     if ((pci_get_class(dev) == PCIC_BRIDGE) &&
        (pci_get_subclass(dev) == PCIS_BRIDGE_PCI)) {
        device_set_desc(dev, "PCI-PCI bridge");
-       return(-10000);
+#ifndef APIC_IO
+       return (-10000);
+#else
+       /* PCIBIOS PCI-PCI bridge is -2000 */
+       return (-1000);
+#endif
     }
     return(ENXIO);
 }