]> Git Repo - linux.git/commitdiff
ACPI: fixes a false alarm from lockdep
authorZhang Rui <[email protected]>
Mon, 22 Mar 2010 07:48:54 +0000 (15:48 +0800)
committerLen Brown <[email protected]>
Tue, 23 Mar 2010 04:17:25 +0000 (00:17 -0400)
fixes a false alarm from lockdep, as acpi hotplug workqueue waits other
workqueues.
http://bugzilla.kernel.org/show_bug.cgi?id=14553
https://bugzilla.kernel.org/show_bug.cgi?id=15521

Original-patch-from: Andrew Morton <[email protected]>
Signed-off-by: Shaohua Li <[email protected]>
Signed-off-by: Zhang Rui <[email protected]>
Signed-off-by: Len Brown <[email protected]>
drivers/acpi/osl.c

index 8e6d8665f0aecd54a6895046c13071b831a250c6..900da68fbb5e93a6b24b79f41ca3cb80a772dc77 100644 (file)
@@ -758,7 +758,14 @@ static acpi_status __acpi_os_execute(acpi_execute_type type,
        queue = hp ? kacpi_hotplug_wq :
                (type == OSL_NOTIFY_HANDLER ? kacpi_notify_wq : kacpid_wq);
        dpc->wait = hp ? 1 : 0;
-       INIT_WORK(&dpc->work, acpi_os_execute_deferred);
+
+       if (queue == kacpi_hotplug_wq)
+               INIT_WORK(&dpc->work, acpi_os_execute_deferred);
+       else if (queue == kacpi_notify_wq)
+               INIT_WORK(&dpc->work, acpi_os_execute_deferred);
+       else
+               INIT_WORK(&dpc->work, acpi_os_execute_deferred);
+
        ret = queue_work(queue, &dpc->work);
 
        if (!ret) {
This page took 0.056663 seconds and 4 git commands to generate.