summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-07-13 23:27:23 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-07-23 04:00:19 +0200
commit2e862c51904ddd12be2d256513160e1f87beafee (patch)
tree0f9a98a6cf77be8d473899218dabd16371c89504
parentACPI / hotplug / PCI: Consolidate acpiphp_enumerate_slots() (diff)
downloadlinux-2e862c51904ddd12be2d256513160e1f87beafee.tar.xz
linux-2e862c51904ddd12be2d256513160e1f87beafee.zip
ACPI / hotplug / PCI: Always return success after adding a function
When a new ACPIPHP function is added by register_slot() and the notify handler cannot be installed for it, register_slot() returns an error status without cleaning up, which causes the entire namespace walk in acpiphp_enumerate_slots() to be aborted, although it still may be possible to successfully install the function notify handler for other device objects under the given brigde. To address this issue make register_slot() return success after a new function has been added, even if the addition of the notify handler for it has failed. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Tested-by: Mika Westerberg <mika.westerberg@linux.intel.com>
-rw-r--r--drivers/pci/hotplug/acpiphp_glue.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index 68c3809ed7ce..d75ba7e0ca8d 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -325,10 +325,9 @@ register_slot(acpi_handle handle, u32 lvl, void *context, void **rv)
if (ACPI_FAILURE(status))
err("failed to register interrupt notify handler\n");
- } else
- status = AE_OK;
+ }
- return status;
+ return AE_OK;
err_exit:
bridge->nr_slots--;