[PATCH v1] thermal: intel: x86_pkg_temp_thermal: Handle invalid temperature

Rafael J. Wysocki posted 1 patch 2 weeks, 4 days ago
drivers/thermal/intel/x86_pkg_temp_thermal.c |    3 +++
1 file changed, 3 insertions(+)
[PATCH v1] thermal: intel: x86_pkg_temp_thermal: Handle invalid temperature
Posted by Rafael J. Wysocki 2 weeks, 4 days ago
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

After commit be0a3600aa1e ("thermal: sysfs: Rework the handling of trip
point updates"), THERMAL_TEMP_INVALID can be passed to sys_set_trip_temp()
and it is treated as a regular temperature value there, so the sysfs
write fails even though it is expected to succeed and disable the given
trip point.

Address this by making sys_set_trip_temp() clear its temp variable when
it is equal to THERMAL_TEMP_INVALID.

Fixes: be0a3600aa1e ("thermal: sysfs: Rework the handling of trip point updates")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/thermal/intel/x86_pkg_temp_thermal.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/drivers/thermal/intel/x86_pkg_temp_thermal.c
+++ b/drivers/thermal/intel/x86_pkg_temp_thermal.c
@@ -128,6 +128,9 @@ sys_set_trip_temp(struct thermal_zone_de
 	u32 l, h, mask, shift, intr;
 	int tj_max, val, ret;
 
+	if (temp == THERMAL_TEMP_INVALID)
+		temp = 0;
+
 	tj_max = intel_tcc_get_tjmax(zonedev->cpu);
 	if (tj_max < 0)
 		return tj_max;