x86/ioapic: Split IOAPIC hot-removal into two steps
commitf2ae5da726172fcf82f7be801489dd585f6a38eb
authorRui Wang <rui.y.wang@intel.com>
Tue, 28 Feb 2017 13:34:29 +0000 (28 21:34 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 1 Mar 2017 09:51:41 +0000 (1 10:51 +0100)
tree35a6ee0f1d018f201f3ab0c145c1fc61d84b49ec
parent153654dbe595a68845ba14d5b0bfe299fa6a7e99
x86/ioapic: Split IOAPIC hot-removal into two steps

The hot removal of IOAPIC is handling PCI and ACPI removal in one go. That
only works when the PCI drivers released the interrupt resources, but
breaks when a IOAPIC interrupt is still associated to a PCI device.

The new pcibios_release_device() callback allows to solve that problem by
splitting the removal into two steps:

1) PCI removal:

   Release all PCI resources including eventually not yet released IOAPIC
   interrupts via the new pcibios_release_device() callback.

2) ACPI removal:

   After release of all PCI resources the ACPI resources can be released
   without issue.

[ tglx: Rewrote changelog ]

Signed-off-by: Rui Wang <rui.y.wang@intel.com>
Cc: tony.luck@intel.com
Cc: linux-pci@vger.kernel.org
Cc: rjw@rjwysocki.net
Cc: linux-acpi@vger.kernel.org
Cc: fengguang.wu@intel.com
Cc: helgaas@kernel.org
Cc: kbuild-all@01.org
Cc: bhelgaas@google.com
Link: http://lkml.kernel.org/r/1488288869-31290-3-git-send-email-rui.y.wang@intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/acpi/internal.h
drivers/acpi/ioapic.c
drivers/acpi/pci_root.c