This patch set enhances IOAPIC core and ACPI drivers to support IOAPIC hotplug on x86 platforms. It's based on v3.18-rc2 at https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git You may pull it from https://github.com/jiangliu/linux.git ioapic/hotplug_v7 We have pick up several patches from Yinghai's original IOAPIC hotplug patch set and reimplemented IOAPIC driver as an ACPI driver instead of a PCI driver. It has been tested on a 4-socket Intel SDV with socket hot-addition capability. Any suggestions are welcomed! Patch 1-3 are bugfixes against v3.17 and should target v3.18. Patch 1 has been merged into tip/x86/urgent. Patch 4-7 are bugfixes and enhancements to ACPI subsystem Patch 8 killes PCI IOAPIC driver Patch 9-17 enhances IOAPIC core to support IOAPIC hotplug Patch 18 reimplements ACPI IOAPIC driver and enables IOAPIC hotplug V6->V7: 1) Rebase to v3.18-rc2 2) Three bugfixes for v3.18 V5->V6: 1) Rebase to the latest v3.17-16 2) Minor fixes for comments V4->V5: 1) Fix a building error 2) Don't rename processor_core.c as apic_id.c 3) Improve comments 4) Reorder patches to get rid of some temporary code V3->V4: 1) Fix a bug in manage IOAPIC reference count 2) Rebase to v3.17-rc2 3) Refine commit messages V2->V3: 1) Refine ACPI resource walk functions for PCI root bus and IOAPIC 2) Improve commit messages 3) Reorder patch order for better maintenence Jiang Liu (15): ACPI, irq: fix regression casued by 6b9fb7082409 x86, intel-mid: Create IRQs for APB timers and RTC timers ACPI, irq, x86: Return IRQ instead of GSI in mp_register_gsi() x86, PCI, ACPI: Kill private function resource_to_addr() in arch/x86/pci/acpi.c ACPI: Correct return value of acpi_dev_resource_address_space() ACPI: Fix minor syntax issues in processor_core.c PCI: Remove PCI ioapic driver x86, irq: Remove __init marker for functions will be used by IOAPIC hotplug x86, irq: Keep balance of IOAPIC pin reference count x86, irq: Refine mp_register_ioapic() to prepare for IOAPIC hotplug x86, irq, ACPI: Introduce a rwsem to protect IOAPIC operations from hotplug x86, irq, ACPI: Implement interface to support ACPI based IOAPIC hot-addition x86, irq, ACPI: Implement interfaces to support ACPI based IOAPIC hot-removal x86, irq: Introduce helper to check whether an IOAPIC has been registered x86, irq, ACPI: Implement ACPI driver to support IOAPIC hotplug Yinghai Lu (3): ACPI: Add interfaces to parse IOAPIC ID for IOAPIC hotplug x86, irq: Split out alloc_ioapic_save_registers() x86, irq: Prefer assigned ID in APIC ID register for x86_64 arch/x86/include/asm/io_apic.h | 6 +- arch/x86/kernel/acpi/boot.c | 102 ++++++++++++++-- arch/x86/kernel/apb_timer.c | 2 - arch/x86/kernel/apic/io_apic.c | 234 +++++++++++++++++++++++++++++------- arch/x86/pci/acpi.c | 144 +++++++++-------------- arch/x86/pci/intel_mid_pci.c | 10 +- arch/x86/pci/irq.c | 7 +- arch/x86/platform/intel-mid/sfi.c | 2 + drivers/acpi/Kconfig | 6 + drivers/acpi/Makefile | 1 + drivers/acpi/internal.h | 7 ++ drivers/acpi/ioapic.c | 235 +++++++++++++++++++++++++++++++++++++ drivers/acpi/pci_irq.c | 11 +- drivers/acpi/pci_root.c | 3 + drivers/acpi/processor_core.c | 131 ++++++++++++++++++--- drivers/acpi/resource.c | 2 +- drivers/pci/Kconfig | 7 -- drivers/pci/Makefile | 2 - drivers/pci/ioapic.c | 121 ------------------- include/linux/acpi.h | 5 + include/linux/pci.h | 1 + 21 files changed, 739 insertions(+), 300 deletions(-) create mode 100644 drivers/acpi/ioapic.c delete mode 100644 drivers/pci/ioapic.c -- 1.7.10.4 -- 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