Broadcom_bus.c was added in 2.6.35 to support PCI hotplug on a couple old boards that don't have ACPI at all. There are three categories of machines with CNB20LE: 1) Those without ACPI at all 2) Pre-2008 machines with ACPI, where the host bridges should be described in ACPI, but Linux doesn't look at _CRS 3) 2008 and newer machines with ACPI, where Linux uses _CRS Broadcom_bus.c was intended for category 1. I think this includes very few machines, and even fewer where we care about PCI hotplug. But it's currently also used for category 2, which includes many more machines, and it changes the behavior from "assume everything in the PCI gap is routed to bus 0" to "figure out the windows using broadcom_bus.c." This broke a Compaq ProLiant DL320 because broadcom_bus.c is incomplete (since there are no public specs), and the windows it discovers don't mesh with the working device configuration from BIOS, so Linux moves devices around and breaks things. See: https://bugzilla.redhat.com/show_bug.cgi?id=665109 These two patches limit the use of broadcom_bus.c to category 1 and discourage its use at all in general-purpose kernels, because I doubt distros care about supporting PCI hotplug on those machines. Bjorn --- Bjorn Helgaas (2): x86/PCI: don't use native Broadcom CNB20LE driver when ACPI is available x86/PCI: make Broadcom CNB20LE driver EMBEDDED and EXPERIMENTAL arch/x86/Kconfig | 10 ++++++++-- arch/x86/pci/broadcom_bus.c | 11 +++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html