ACPI / hotplug / PCI: Always return success after adding a function
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 13 Jul 2013 21:27:23 +0000 (23:27 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 23 Jul 2013 02:00:19 +0000 (04:00 +0200)
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>
drivers/pci/hotplug/acpiphp_glue.c

index 68c3809ed7ceaac4c8c3e070832f79653ba7039a..d75ba7e0ca8d02fa72efbcc8757b0a89f2cc4792 100644 (file)
@@ -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--;