===================================================================
@@ -729,6 +729,8 @@ static acpi_status __acpi_os_execute(acp
struct acpi_os_dpc *dpc;
struct workqueue_struct *queue;
int ret;
+ static struct lock_class_key hp_key, notify_key, acpid_key;
+
ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
"Scheduling function [%p(%p)] for deferred execution.\n",
function, context));
@@ -758,7 +760,15 @@ static acpi_status __acpi_os_execute(acp
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_KEY(&dpc->work, acpi_os_execute_deferred,
+ hp_key, "acpi_hp_work");
+ else if (queue == kacpi_notify_wq)
+ INIT_WORK_KEY(&dpc->work, acpi_os_execute_deferred,
+ notify_key, "acpi_notify_work");
+ else
+ INIT_WORK_KEY(&dpc->work, acpi_os_execute_deferred,
+ acpid_key, "acpi_acpid_work");
ret = queue_work(queue, &dpc->work);
if (!ret) {