diff options
author | linas <linas@austin.ibm.com> | 2005-09-28 20:33:38 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2005-10-28 18:36:59 -0400 |
commit | 934199e95d6ac28f42686fe3009877eff33e06c3 (patch) | |
tree | 607f305d0a7841484bd7b1e1adf956c7231db2de /drivers/pci/hotplug | |
parent | b7924c38c9a9c6151213bc0d91776eace614e761 (diff) |
[PATCH] ppc64 PCI Hotplug: cleanup unsymmetric API routines
This is a minor patch to the ppc64 PCI hotplug code; it makes the call to
rpaphp_unconfig_pci_adapter() symmetric with respect to the call to
rpaphp_config_pci_adapter(). I discussed this with John Rose, who
had provided the last round of changes for these functions; he
appearently had this patch but somehow failed to mail it out.
Tested. (added/removed device).
Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
drivers/pci/hotplug/rpaphp.h | 3 ++-
drivers/pci/hotplug/rpaphp_core.c | 5 ++++-
drivers/pci/hotplug/rpaphp_pci.c | 11 +++--------
3 files changed, 9 insertions(+), 10 deletions(-)
Diffstat (limited to 'drivers/pci/hotplug')
-rw-r--r-- | drivers/pci/hotplug/rpaphp.h | 3 | ||||
-rw-r--r-- | drivers/pci/hotplug/rpaphp_core.c | 5 | ||||
-rw-r--r-- | drivers/pci/hotplug/rpaphp_pci.c | 11 |
3 files changed, 9 insertions, 10 deletions
diff --git a/drivers/pci/hotplug/rpaphp.h b/drivers/pci/hotplug/rpaphp.h index 61d94d1e29cb..71ea5f9bb284 100644 --- a/drivers/pci/hotplug/rpaphp.h +++ b/drivers/pci/hotplug/rpaphp.h | |||
@@ -92,9 +92,10 @@ extern struct pci_bus *rpaphp_find_pci_bus(struct device_node *dn); | |||
92 | extern int rpaphp_claim_resource(struct pci_dev *dev, int resource); | 92 | extern int rpaphp_claim_resource(struct pci_dev *dev, int resource); |
93 | extern int rpaphp_enable_pci_slot(struct slot *slot); | 93 | extern int rpaphp_enable_pci_slot(struct slot *slot); |
94 | extern int register_pci_slot(struct slot *slot); | 94 | extern int register_pci_slot(struct slot *slot); |
95 | extern int rpaphp_unconfig_pci_adapter(struct slot *slot); | ||
96 | extern int rpaphp_get_pci_adapter_status(struct slot *slot, int is_init, u8 * value); | 95 | extern int rpaphp_get_pci_adapter_status(struct slot *slot, int is_init, u8 * value); |
96 | |||
97 | extern int rpaphp_config_pci_adapter(struct pci_bus *bus); | 97 | extern int rpaphp_config_pci_adapter(struct pci_bus *bus); |
98 | extern int rpaphp_unconfig_pci_adapter(struct pci_bus *bus); | ||
98 | 99 | ||
99 | /* rpaphp_core.c */ | 100 | /* rpaphp_core.c */ |
100 | extern int rpaphp_add_slot(struct device_node *dn); | 101 | extern int rpaphp_add_slot(struct device_node *dn); |
diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c index c830ff0acdc3..cf075c34b578 100644 --- a/drivers/pci/hotplug/rpaphp_core.c +++ b/drivers/pci/hotplug/rpaphp_core.c | |||
@@ -426,8 +426,11 @@ static int disable_slot(struct hotplug_slot *hotplug_slot) | |||
426 | 426 | ||
427 | dbg("DISABLING SLOT %s\n", slot->name); | 427 | dbg("DISABLING SLOT %s\n", slot->name); |
428 | down(&rpaphp_sem); | 428 | down(&rpaphp_sem); |
429 | retval = rpaphp_unconfig_pci_adapter(slot); | 429 | retval = rpaphp_unconfig_pci_adapter(slot->bus); |
430 | up(&rpaphp_sem); | 430 | up(&rpaphp_sem); |
431 | slot->state = NOT_CONFIGURED; | ||
432 | info("%s: devices in slot[%s] unconfigured.\n", __FUNCTION__, | ||
433 | slot->name); | ||
431 | exit: | 434 | exit: |
432 | dbg("%s - Exit: rc[%d]\n", __FUNCTION__, retval); | 435 | dbg("%s - Exit: rc[%d]\n", __FUNCTION__, retval); |
433 | return retval; | 436 | return retval; |
diff --git a/drivers/pci/hotplug/rpaphp_pci.c b/drivers/pci/hotplug/rpaphp_pci.c index 49e4d10a6488..46c157d26a2f 100644 --- a/drivers/pci/hotplug/rpaphp_pci.c +++ b/drivers/pci/hotplug/rpaphp_pci.c | |||
@@ -319,20 +319,15 @@ static void rpaphp_eeh_remove_bus_device(struct pci_dev *dev) | |||
319 | return; | 319 | return; |
320 | } | 320 | } |
321 | 321 | ||
322 | int rpaphp_unconfig_pci_adapter(struct slot *slot) | 322 | int rpaphp_unconfig_pci_adapter(struct pci_bus *bus) |
323 | { | 323 | { |
324 | struct pci_dev *dev, *tmp; | 324 | struct pci_dev *dev, *tmp; |
325 | int retval = 0; | ||
326 | 325 | ||
327 | list_for_each_entry_safe(dev, tmp, slot->pci_devs, bus_list) { | 326 | list_for_each_entry_safe(dev, tmp, &bus->devices, bus_list) { |
328 | rpaphp_eeh_remove_bus_device(dev); | 327 | rpaphp_eeh_remove_bus_device(dev); |
329 | pci_remove_bus_device(dev); | 328 | pci_remove_bus_device(dev); |
330 | } | 329 | } |
331 | 330 | return 0; | |
332 | slot->state = NOT_CONFIGURED; | ||
333 | info("%s: devices in slot[%s] unconfigured.\n", __FUNCTION__, | ||
334 | slot->name); | ||
335 | return retval; | ||
336 | } | 331 | } |
337 | 332 | ||
338 | static int setup_pci_hotplug_slot_info(struct slot *slot) | 333 | static int setup_pci_hotplug_slot_info(struct slot *slot) |