ACPI / scan: Do not try to attach scan handlers to devices having them
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 12 Jul 2013 11:45:59 +0000 (13:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 4 Aug 2013 08:51:01 +0000 (16:51 +0800)
commit85471df478e22dd96ca4756789abc795683addc9
treeeb9c91a4cce3ab9db025f0bfc369ea30654f0280
parent9d80c9e6f3345b343b9a095e8591f7c8a164b2c0
ACPI / scan: Do not try to attach scan handlers to devices having them

commit 3a391a39593b48341f0908511590a6c0e55cc069 upstream.

In acpi_bus_device_attach(), if there is an ACPI device object
for the given handle and that device object has a scan handler
attached to it already, there's nothing more to do for that handle.
Moreover, if acpi_scan_attach_handler() is called then, it may
execute the .attach() callback of the ACPI scan handler already
attached to the device object and that may lead to interesting
breakage.

For this reason, make acpi_bus_device_attach() return success
immediately when the handle's device object has a scan handler
attached to it.

Reported-by: Toshi Kani <toshi.kani@hp.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Toshi Kani <toshi.kani@hp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/scan.c