linux/drivers/acpi
Rui Wang f2ae5da726 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>
2017-03-01 10:51:41 +01:00
..
acpica scripts/spelling.txt: add "an union" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
apei ACPI, APEI, EINJ: fix malformed newline escape 2017-01-31 22:39:54 +01:00
arm64 arm64 updates for 4.11: 2017-02-22 10:46:44 -08:00
dptf ACPI / platform: Add support for build-in properties 2016-11-10 00:30:29 +01:00
nfit Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 12:47:44 -08:00
pmic ACPI / PMIC: remove modular references from non-modular code 2016-07-16 03:03:14 +02:00
ac.c
acpi_amba.c ACPI / amba: Remove CLK_IS_ROOT 2016-04-27 23:42:57 +02:00
acpi_apd.c Merge branches 'acpi-soc', 'acpi-battery', 'acpi-video', 'acpi-cppc' and 'acpi-apei' 2016-12-12 20:48:01 +01:00
acpi_cmos_rtc.c char/genrtc: x86: remove remnants of asm/rtc.h 2016-06-04 00:20:07 +02:00
acpi_configfs.c ACPI: Rename configfs.c to acpi_configfs.c to prevent link error 2016-07-11 15:13:36 +02:00
acpi_dbg.c ACPI / debugger: Fix regression introduced by IS_ERR_VALUE() removal 2016-07-05 23:02:34 +02:00
acpi_extlog.c x86/ras, EDAC, acpi: Assign MCE notifier handlers a priority 2017-01-24 09:14:57 +01:00
acpi_ipmi.c acpi:ipmi: Make IPMI user handler const 2017-02-09 09:10:05 -06:00
acpi_lpat.c ACPI / lpat: make it explicitly non-modular 2016-07-16 03:08:10 +02:00
acpi_lpss.c arch/x86/platform/atom: Move pmc_atom to drivers/platform/x86 2017-01-26 16:21:27 -08:00
acpi_memhotplug.c
acpi_pad.c ACPI / PAD: don't register acpi_pad driver if running as Xen dom0 2016-10-12 21:44:04 +02:00
acpi_platform.c Merge branch 'device-properties' 2016-11-11 23:23:02 +01:00
acpi_pnp.c ACPI / PNP: constify device IDs 2016-01-04 22:10:30 +01:00
acpi_processor.c x86/ACPI: keep x86_cpu_to_acpiid mapping valid on CPU hotplug 2017-02-07 13:34:56 +01:00
acpi_video.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
acpi_watchdog.c ACPI / watchdog: Print out error number when device creation fails 2016-12-26 23:21:56 +01:00
battery.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
battery.h
bgrt.c efi/x86: Move the EFI BGRT init code to early init code 2017-02-01 08:45:46 +01:00
blacklist.c ACPI / blacklist: Make Dell Latitude 3350 ethernet work 2016-11-16 23:01:29 +01:00
bus.c ACPI / bus: Introduce acpi_of_modalias() equiv of of_modalias_node() 2017-02-07 13:31:50 +01:00
button.c ACPI / button: Remove lid_init_state=method mode 2017-01-31 17:20:45 +01:00
cm_sbs.c
container.c
cppc_acpi.c ACPI / CPPC: Fix per-CPU pointer management in acpi_cppc_processor_probe() 2016-12-12 23:52:34 +01:00
custom_method.c
debugfs.c
device_pm.c ACPI / PM: Export acpi_device_fix_up_power() 2016-05-20 15:54:01 +02:00
device_sysfs.c ACPI / property: Hierarchical properties support update 2016-11-24 02:43:47 +01:00
dock.c ACPI / dock: make dock explicitly non-modular 2016-07-16 03:08:08 +02:00
ec.c ACPI / EC: Use busy polling mode when GPE is not enabled 2017-01-30 12:12:52 +01:00
ec_sys.c ACPI / EC: Deny write access unless requested by module param 2016-03-09 23:26:15 +01:00
event.c genetlink: mark families as __ro_after_init 2016-10-27 16:16:09 -04:00
evged.c ACPI / GED: make evged.c explicitly non-modular 2016-05-09 22:59:25 +02:00
fan.c ACPI / fan: Fix error reading cur_state 2016-10-10 02:20:43 +02:00
glue.c ACPI / scan: Prefer devices without _HID/_CID for _ADR matching 2017-01-02 22:21:59 +01:00
hed.c
internal.h x86/ioapic: Split IOAPIC hot-removal into two steps 2017-03-01 10:51:41 +01:00
ioapic.c x86/ioapic: Split IOAPIC hot-removal into two steps 2017-03-01 10:51:41 +01:00
irq.c ACPI: Add support for ResourceSource/IRQ domain mapping 2017-02-03 15:03:48 +00:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-12-14 11:12:25 -08:00
Makefile ACPI: Add support for ResourceSource/IRQ domain mapping 2017-02-03 15:03:48 +00:00
numa.c ACPI/NUMA: Do not map pxm to node when NUMA is turned off 2016-12-15 11:32:32 +01:00
nvs.c
osi.c ACPI / osi: Collect _OSI handling into one single file 2016-05-05 00:13:53 +02:00
osl.c ACPICA: Hardware: Add sleep register hooks 2017-01-02 23:18:41 +01:00
pci_irq.c ACPI / PCI: fix GIC irq model default PCI IRQ polarity 2016-09-10 02:50:50 +02:00
pci_link.c ACPI/PCI: pci_link: Include PIRQ_PENALTY_PCI_USING for ISA IRQs 2016-10-24 14:18:14 +02:00
pci_mcfg.c PCI/ACPI: Fix bus range comparison in pci_mcfg_lookup() 2017-01-12 14:32:09 -06:00
pci_root.c x86/ioapic: Split IOAPIC hot-removal into two steps 2017-03-01 10:51:41 +01:00
pci_slot.c ACPI / PCI: make pci_slot explicitly non-modular 2016-07-16 03:05:29 +02:00
power.c
proc.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
processor_core.c ACPI / osl: Remove acpi_get_table_with_size()/early_acpi_os_unmap_memory() users 2016-12-21 02:36:38 +01:00
processor_driver.c Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-10-03 19:43:08 -07:00
processor_idle.c x86/amd: Simplify AMD E400 aware idle routine 2016-12-09 21:23:21 +01:00
processor_pdc.c
processor_perflib.c ACPI: processor_perflib: Simplify code and stop using CPUFREQ_START 2017-02-04 00:05:29 +01:00
processor_thermal.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
processor_throttling.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
property.c ACPI / property: Hierarchical properties support update 2016-11-24 02:43:47 +01:00
reboot.c
resource.c scripts/spelling.txt: add "overrided" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
sbs.c ACPI / SBS: fix inconsistent indenting inside if statement 2016-01-04 22:14:27 +01:00
sbshc.c Revert "ACPI / SBS: Add 5 us delay to fix SBS hangs on MacBook" 2015-11-16 23:26:45 +01:00
sbshc.h
scan.c ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding 2016-12-26 23:16:39 +01:00
sleep.c ACPI: save NVS memory for Lenovo G50-45 2017-01-31 22:46:59 +01:00
sleep.h ACPICA: Drop Linux-specific waking vector functions 2016-01-04 22:05:20 +01:00
spcr.c scripts/spelling.txt: add "intialization" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
sysfs.c ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding 2016-12-26 23:16:39 +01:00
tables.c ACPI / osl: Remove acpi_get_table_with_size()/early_acpi_os_unmap_memory() users 2016-12-21 02:36:38 +01:00
thermal.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
utils.c nfit: make DIMM DSMs optional 2016-07-19 12:32:39 -07:00
video_detect.c Revert "ACPI / video: Add force_native quirk for HP Pavilion dv6" 2017-01-25 14:04:13 +01:00
wakeup.c