From: Andrew Morton Roland sayeth: The change "PCI: assign ioapic resource at hotplug" (commit 23186279658cea6d42a050400d3e79c56cb459b4 in Linus's tree) makes networking stop working on my system (SuperMicro H8QC8 with four dual-core Opteron 885 CPUs). In particular, the on-board NIC stops working, probably because it gets assigned the wrong IRQ (225 in the non-working case, 217 in the working case) With that patch applied, e1000 doesn't work. Reverting just that patch (shown below) from Linus's latest tree fixes things for me. Cc: Kenji Kaneshige Cc: MUNEDA Takahiro Cc: Satoru Takeuchi Cc: Kristen Carlson Accardi Cc: Greg Kroah-Hartman Cc: Roland Dreier Signed-off-by: Andrew Morton --- drivers/pci/setup-bus.c | 13 +++---------- 1 files changed, 3 insertions(+), 10 deletions(-) diff -puN drivers/pci/setup-bus.c~revert-pci-assign-ioapic-resource-at-hotplug drivers/pci/setup-bus.c --- a/drivers/pci/setup-bus.c~revert-pci-assign-ioapic-resource-at-hotplug +++ a/drivers/pci/setup-bus.c @@ -55,19 +55,12 @@ pbus_assign_resources_sorted(struct pci_ list_for_each_entry(dev, &bus->devices, bus_list) { u16 class = dev->class >> 8; - /* Don't touch classless devices or host bridges. */ + /* Don't touch classless devices or host bridges or ioapics. */ if (class == PCI_CLASS_NOT_DEFINED || - class == PCI_CLASS_BRIDGE_HOST) + class == PCI_CLASS_BRIDGE_HOST || + class == PCI_CLASS_SYSTEM_PIC) continue; - /* Don't touch ioapics if it has the assigned resources. */ - if (class == PCI_CLASS_SYSTEM_PIC) { - res = &dev->resource[0]; - if (res[0].start || res[1].start || res[2].start || - res[3].start || res[4].start || res[5].start) - continue; - } - pdev_sort_resources(dev, &head); } _