platform/x86: wmi: Simplify get_subobj_info()
authorArmin Wolf <W_Armin@gmx.de>
Mon, 18 Dec 2023 19:24:20 +0000 (20:24 +0100)
committerHans de Goede <hdegoede@redhat.com>
Tue, 19 Dec 2023 15:32:46 +0000 (16:32 +0100)
All callers who call get_subobj_info() with **info being NULL
should better use acpi_has_method() instead.
Convert the only caller who does this to acpi_has_method()
to drop the dummy info handling.

Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20231218192420.305411-7-W_Armin@gmx.de
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/wmi.c

index 559a99ebc62430c0bb872bfadd583c994bdaabbc..a7cfcbf92432c72f26e25577b4fa381e1b6a316d 100644 (file)
@@ -132,23 +132,19 @@ static const void *find_guid_context(struct wmi_block *wblock,
 static int get_subobj_info(acpi_handle handle, const char *pathname,
                           struct acpi_device_info **info)
 {
-       struct acpi_device_info *dummy_info, **info_ptr;
        acpi_handle subobj_handle;
        acpi_status status;
 
-       status = acpi_get_handle(handle, (char *)pathname, &subobj_handle);
+       status = acpi_get_handle(handle, pathname, &subobj_handle);
        if (status == AE_NOT_FOUND)
                return -ENOENT;
-       else if (ACPI_FAILURE(status))
-               return -EIO;
 
-       info_ptr = info ? info : &dummy_info;
-       status = acpi_get_object_info(subobj_handle, info_ptr);
        if (ACPI_FAILURE(status))
                return -EIO;
 
-       if (!info)
-               kfree(dummy_info);
+       status = acpi_get_object_info(subobj_handle, info);
+       if (ACPI_FAILURE(status))
+               return -EIO;
 
        return 0;
 }
@@ -998,9 +994,7 @@ static int wmi_create_device(struct device *wmi_bus_dev,
        kfree(info);
 
        get_acpi_method_name(wblock, 'S', method);
-       result = get_subobj_info(device->handle, method, NULL);
-
-       if (result == 0)
+       if (acpi_has_method(device->handle, method))
                wblock->dev.setable = true;
 
  out_init: