ACPI: OSL: Rearrange workqueue selection in acpi_os_execute()

JIRA: https://issues.redhat.com/browse/RHEL-54149

commit 3f3a2599374ede5ac47ca89981ff8dd8f304d915
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date: Wed, 06 Dec 2023 21:14:34 +0000

Replace the 3-branch if () statement used for selecting the target
workqueue in acpi_os_execute() with a switch () one that is more
suitable for this purpose and carry out the work item initialization
before it to avoid code duplication.

No intentional functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Mark Langsdorf <mlangsdo@redhat.com>
This commit is contained in:
Mark Langsdorf 2024-08-13 14:16:34 -04:00
parent c1a5fa23a4
commit f87963e47b
1 changed files with 7 additions and 5 deletions

View File

@ -1092,19 +1092,21 @@ acpi_status acpi_os_execute(acpi_execute_type type,
dpc->function = function;
dpc->context = context;
INIT_WORK(&dpc->work, acpi_os_execute_deferred);
/*
* To prevent lockdep from complaining unnecessarily, make sure that
* there is a different static lockdep key for each workqueue by using
* INIT_WORK() for each of them separately.
*/
if (type == OSL_NOTIFY_HANDLER) {
switch (type) {
case OSL_NOTIFY_HANDLER:
queue = kacpi_notify_wq;
INIT_WORK(&dpc->work, acpi_os_execute_deferred);
} else if (type == OSL_GPE_HANDLER) {
break;
case OSL_GPE_HANDLER:
queue = kacpid_wq;
INIT_WORK(&dpc->work, acpi_os_execute_deferred);
} else {
break;
default:
pr_err("Unsupported os_execute type %d.\n", type);
goto err;
}