[PATCH v2 1/2] thermal: core: Do not call handle_thermal_trip() if zone temperature is invalid

From: Rafael J. Wysocki
Date: Tue Apr 30 2024 - 11:55:46 EST


From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

Make __thermal_zone_device_update() bail out if update_temperature()
fails to update the zone temperature because __thermal_zone_get_temp()
has returned an error and the current zone temperature is
THERMAL_TEMP_INVALID (user space receiving netlink thermal messages,
thermal debug code and thermal governors may get confused otherwise).

Fixes: 9ad18043fb35 ("thermal: core: Send trip crossing notifications at init time if needed")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
---

New patch in v2.

---
drivers/thermal/thermal_core.c | 3 +++
1 file changed, 3 insertions(+)

Index: linux-pm/drivers/thermal/thermal_core.c
===================================================================
--- linux-pm.orig/drivers/thermal/thermal_core.c
+++ linux-pm/drivers/thermal/thermal_core.c
@@ -487,6 +487,9 @@ void __thermal_zone_device_update(struct

update_temperature(tz);

+ if (tz->temperature == THERMAL_TEMP_INVALID)
+ return;
+
__thermal_zone_set_trips(tz);

tz->notify_event = event;