mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar: "Misc fixes and minor updates all over the place: - an SGI/UV fix - a defconfig update - a build warning fix - move the boot_params file to the arch location in debugfs - a pkeys fix - selftests fix - boot message fixes - sparse fixes - a resume warning fix - ioapic hotplug fixes - reboot quirks ... plus various minor cleanups" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/build/x86_64_defconfig: Enable CONFIG_R8169 x86/reboot/quirks: Add ASUS EeeBook X205TA/W reboot quirk x86/hpet: Prevent might sleep splat on resume x86/boot: Correct setup_header.start_sys name x86/purgatory: Fix sparse warning, symbol not declared x86/purgatory: Make functions and variables static x86/events: Remove last remnants of old filenames x86/pkeys: Check against max pkey to avoid overflows x86/ioapic: Split IOAPIC hot-removal into two steps x86/PCI: Implement pcibios_release_device to release IRQ from IOAPIC x86/intel_rdt: Remove duplicate inclusion of linux/cpu.h x86/vmware: Remove duplicate inclusion of asm/timer.h x86/hyperv: Hide unused label x86/reboot/quirks: Add ASUS EeeBook X205TA reboot quirk x86/platform/uv/BAU: Fix HUB errors by remove initial write to sw-ack register x86/selftests: Add clobbers for int80 on x86_64 x86/apic: Simplify enable_IR_x2apic(), remove try_to_enable_IR() x86/apic: Fix a warning message in logical CPU IDs allocation x86/kdebugfs: Move boot params hierarchy under (debugfs)/x86/
This commit is contained in:
commit
ec3b93ae0b
27 changed files with 106 additions and 57 deletions
|
|
@ -41,8 +41,10 @@ void acpi_gpe_apply_masked_gpes(void);
|
|||
void acpi_container_init(void);
|
||||
void acpi_memory_hotplug_init(void);
|
||||
#ifdef CONFIG_ACPI_HOTPLUG_IOAPIC
|
||||
void pci_ioapic_remove(struct acpi_pci_root *root);
|
||||
int acpi_ioapic_remove(struct acpi_pci_root *root);
|
||||
#else
|
||||
static inline void pci_ioapic_remove(struct acpi_pci_root *root) { return; }
|
||||
static inline int acpi_ioapic_remove(struct acpi_pci_root *root) { return 0; }
|
||||
#endif
|
||||
#ifdef CONFIG_ACPI_DOCK
|
||||
|
|
|
|||
|
|
@ -206,6 +206,23 @@ int acpi_ioapic_add(acpi_handle root_handle)
|
|||
return ACPI_SUCCESS(status) && ACPI_SUCCESS(retval) ? 0 : -ENODEV;
|
||||
}
|
||||
|
||||
void pci_ioapic_remove(struct acpi_pci_root *root)
|
||||
{
|
||||
struct acpi_pci_ioapic *ioapic, *tmp;
|
||||
|
||||
mutex_lock(&ioapic_list_lock);
|
||||
list_for_each_entry_safe(ioapic, tmp, &ioapic_list, list) {
|
||||
if (root->device->handle != ioapic->root_handle)
|
||||
continue;
|
||||
if (ioapic->pdev) {
|
||||
pci_release_region(ioapic->pdev, 0);
|
||||
pci_disable_device(ioapic->pdev);
|
||||
pci_dev_put(ioapic->pdev);
|
||||
}
|
||||
}
|
||||
mutex_unlock(&ioapic_list_lock);
|
||||
}
|
||||
|
||||
int acpi_ioapic_remove(struct acpi_pci_root *root)
|
||||
{
|
||||
int retval = 0;
|
||||
|
|
@ -215,15 +232,8 @@ int acpi_ioapic_remove(struct acpi_pci_root *root)
|
|||
list_for_each_entry_safe(ioapic, tmp, &ioapic_list, list) {
|
||||
if (root->device->handle != ioapic->root_handle)
|
||||
continue;
|
||||
|
||||
if (acpi_unregister_ioapic(ioapic->handle, ioapic->gsi_base))
|
||||
retval = -EBUSY;
|
||||
|
||||
if (ioapic->pdev) {
|
||||
pci_release_region(ioapic->pdev, 0);
|
||||
pci_disable_device(ioapic->pdev);
|
||||
pci_dev_put(ioapic->pdev);
|
||||
}
|
||||
if (ioapic->res.flags && ioapic->res.parent)
|
||||
release_resource(&ioapic->res);
|
||||
list_del(&ioapic->list);
|
||||
|
|
|
|||
|
|
@ -648,12 +648,12 @@ static void acpi_pci_root_remove(struct acpi_device *device)
|
|||
|
||||
pci_stop_root_bus(root->bus);
|
||||
|
||||
WARN_ON(acpi_ioapic_remove(root));
|
||||
|
||||
pci_ioapic_remove(root);
|
||||
device_set_run_wake(root->bus->bridge, false);
|
||||
pci_acpi_remove_bus_pm_notifier(device);
|
||||
|
||||
pci_remove_root_bus(root->bus);
|
||||
WARN_ON(acpi_ioapic_remove(root));
|
||||
|
||||
dmar_device_remove(device->handle);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue