ACPI: thermal: Mark uninitialized active trips as invalid
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 28 Sep 2023 15:45:59 +0000 (17:45 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 28 Sep 2023 17:06:36 +0000 (19:06 +0200)
After removing the valid flag from struct acpi_thermal_trip, the trip
temperature value is used in validity checks, so it must be
THERMAL_TEMP_INVALID for the active trip entries in struct acpi_thermal_trips
that are not going to be used (because the corresponding objects are not
present in the ACPI tables, for example).

Accordingly, modify acpi_thermal_get_trip_points() to set the temperature
value to THERMAL_TEMP_INVALID for trip point entries skipped by it after
acpi_thermal_init_trip() has returned 'false' for an active trip.

Fixes: 058f5e407deb ("ACPI: thermal: Drop valid flag from struct acpi_thermal_trip")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/thermal.c

index c303688ead714266f9d87d113ac6908fac2b698c..0c3160c04d655776f77834ca1dac19621810c6ab 100644 (file)
@@ -480,6 +480,9 @@ static int acpi_thermal_get_trip_points(struct acpi_thermal *tz)
 
        }
 
+       while (++i < ACPI_THERMAL_MAX_ACTIVE)
+               tz->trips.active[i].trip.temperature = THERMAL_TEMP_INVALID;
+
        return count;
 }