ACPI: OSL: Rearrange workqueue selection in acpi_os_execute()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 29 Nov 2023 13:48:22 +0000 (14:48 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 6 Dec 2023 20:14:34 +0000 (21:14 +0100)
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>
drivers/acpi/osl.c

index 603057f6c63ec55b1c1e44c04bc70af3f3f69c65..5eacf807d552086eac2d9d77d20b2960cc050b1f 100644 (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;
        }