ACPI: x86: s2idle: Switch to use acpi_evaluate_dsm_typed()
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 2 Oct 2023 13:52:18 +0000 (16:52 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 3 Oct 2023 13:50:03 +0000 (15:50 +0200)
The acpi_evaluate_dsm_typed() provides a way to check the type of the
object evaluated by _DSM call. Use it instead of open coded variant.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/x86/s2idle.c

index 08f7c67082063f9d42d3e28f555c8755894b6ab1..7d64e655f1b86c875856af23a2a1d2c5bcc680dc 100644 (file)
@@ -417,11 +417,10 @@ static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *d
        int ret = -EINVAL;
 
        guid_parse(uuid, dsm_guid);
-       obj = acpi_evaluate_dsm(handle, dsm_guid, rev, 0, NULL);
 
        /* Check if the _DSM is present and as expected. */
-       if (!obj || obj->type != ACPI_TYPE_BUFFER || obj->buffer.length == 0 ||
-           obj->buffer.length > sizeof(u32)) {
+       obj = acpi_evaluate_dsm_typed(handle, dsm_guid, rev, 0, NULL, ACPI_TYPE_BUFFER);
+       if (!obj || obj->buffer.length == 0 || obj->buffer.length > sizeof(u32)) {
                acpi_handle_debug(handle,
                                "_DSM UUID %s rev %d function 0 evaluation failed\n", uuid, rev);
                goto out;