]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/acpi/thermal.c
ACPI / thermal: Add check of "_TZD" availability and evaluating result
[karo-tx-linux.git] / drivers / acpi / thermal.c
index ccf9527d7ed3011c25204c13b699ba2bfca221c7..0055c83c26c009eb59094f0678cad651ae201f36 100644 (file)
@@ -485,14 +485,14 @@ static int acpi_thermal_trips_update(struct acpi_thermal *tz, int flag)
                        break;
        }
 
-       if (flag & ACPI_TRIPS_DEVICES) {
-               memset(&devices, 0, sizeof(struct acpi_handle_list));
+       if ((flag & ACPI_TRIPS_DEVICES)
+           && acpi_has_method(tz->device->handle, "_TZD")) {
+               memset(&devices, 0, sizeof(devices));
                status = acpi_evaluate_reference(tz->device->handle, "_TZD",
                                                NULL, &devices);
-               if (memcmp(&tz->devices, &devices,
-                               sizeof(struct acpi_handle_list))) {
-                       memcpy(&tz->devices, &devices,
-                               sizeof(struct acpi_handle_list));
+               if (ACPI_SUCCESS(status)
+                   && memcmp(&tz->devices, &devices, sizeof(devices))) {
+                       tz->devices = devices;
                        ACPI_THERMAL_TRIPS_EXCEPTION(flag, "device");
                }
        }