aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjorn Helgaas <[email protected]>2012-08-17 09:56:14 -0600
committerBjorn Helgaas <[email protected]>2012-08-17 11:14:26 -0600
commit57fd9a4df562e7d2105a01ff57b4cdaa236c28ce (patch)
tree890e9b3af5aece347b5b9fd2dedcea42e7da236c
parent0d7614f09c1ebdbaa1599a5aba7593f147bf96ee (diff)
PCI: acpiphp: Stop disabling bridges on remove
acpiphp_disable_slot() turns off power to the slot immediately after calling disable_device(), so there's no point in disabling any bridges below the slot: we're about to turn them off anyway. Tested-by: Yijing Wang <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]> Acked-by: Yinghai Lu <[email protected]>
-rw-r--r--drivers/pci/hotplug/acpiphp_glue.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index ad6fd6695495..c25291c74353 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -869,17 +869,6 @@ static int __ref enable_device(struct acpiphp_slot *slot)
return retval;
}
-static void disable_bridges(struct pci_bus *bus)
-{
- struct pci_dev *dev;
- list_for_each_entry(dev, &bus->devices, bus_list) {
- if (dev->subordinate) {
- disable_bridges(dev->subordinate);
- pci_disable_device(dev);
- }
- }
-}
-
/* return first device in slot, acquiring a reference on it */
static struct pci_dev *dev_in_slot(struct acpiphp_slot *slot)
{
@@ -932,10 +921,6 @@ static int disable_device(struct acpiphp_slot *slot)
*/
while ((pdev = dev_in_slot(slot))) {
pci_stop_bus_device(pdev);
- if (pdev->subordinate) {
- disable_bridges(pdev->subordinate);
- pci_disable_device(pdev);
- }
__pci_remove_bus_device(pdev);
pci_dev_put(pdev);
}