aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-02-03 02:22:27 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-02-03 22:28:26 +0100
commitd42f5da2340083301dd2c48ff2d75f6ce4b30767 (patch)
tree5b0552698709842d04c8cd72e292514a65d9bce2 /drivers/pci
parentACPI / hotplug / PCI: Move PCI rescan-remove locking to hotplug_event() (diff)
downloadlinux-dev-d42f5da2340083301dd2c48ff2d75f6ce4b30767.tar.xz
linux-dev-d42f5da2340083301dd2c48ff2d75f6ce4b30767.zip
ACPI / hotplug / PCI: Scan root bus under the PCI rescan-remove lock
Since acpiphp_check_bridge() called by acpiphp_check_host_bridge() does things that require PCI rescan-remove locking around it, make acpiphp_check_host_bridge() use that locking. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/hotplug/acpiphp_glue.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 6e5bd79af810..931d0b44eace 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -829,7 +829,11 @@ void acpiphp_check_host_bridge(acpi_handle handle)
bridge = acpiphp_handle_to_bridge(handle);
if (bridge) {
+ pci_lock_rescan_remove();
+
acpiphp_check_bridge(bridge);
+
+ pci_unlock_rescan_remove();
put_bridge(bridge);
}
}