aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinas Vepstas <linas@austin.ibm.com>2007-04-13 18:34:23 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-05-02 22:02:40 -0400
commite70ea2634afe7d04ffaf7417df7bfdbfdc460e10 (patch)
treeea86633349ce6694b65af34fa8d65996ee2bd166
parentda65944be2441191539f50ce71cd1f8030699be1 (diff)
PCI: rpaphp: Use pcibios_remove_pci_devices() symmetrically
At first blush, the disable_slot() routine does not look at all like its symmetric with the enable_slot() routine; as it seems to call a very different set of routines. However, this is easily fixed: pcibios_remove_pci_devices() does the right thing. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Cc: John Rose <johnrose@austin.ibm.com> Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/pci/hotplug/rpaphp_core.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c
index aa8d9a60d0a6..4efdaa19e8f9 100644
--- a/drivers/pci/hotplug/rpaphp_core.c
+++ b/drivers/pci/hotplug/rpaphp_core.c
@@ -424,18 +424,12 @@ static int enable_slot(struct hotplug_slot *hotplug_slot)
424 return retval; 424 return retval;
425} 425}
426 426
427static int __disable_slot(struct slot *slot) 427static inline int __disable_slot(struct slot *slot)
428{ 428{
429 struct pci_dev *dev, *tmp;
430
431 if (slot->state == NOT_CONFIGURED) 429 if (slot->state == NOT_CONFIGURED)
432 return -EINVAL; 430 return -EINVAL;
433 431
434 list_for_each_entry_safe(dev, tmp, &slot->bus->devices, bus_list) { 432 pcibios_remove_pci_devices(slot->bus);
435 eeh_remove_bus_device(dev);
436 pci_remove_bus_device(dev);
437 }
438
439 slot->state = NOT_CONFIGURED; 433 slot->state = NOT_CONFIGURED;
440 return 0; 434 return 0;
441} 435}