thermal: intel: int340x: Protect trip temperature from concurrent updates
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Mon, 23 Jan 2023 17:21:10 +0000 (09:21 -0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 24 Jan 2023 20:28:19 +0000 (21:28 +0100)
commit6757a7abe47bcb12cb2d45661067e182424b0ee3
tree446dc63d94bcc52282a9e9176d243cbaf2dba877
parent2241ab53cbb5cdb08a6b2d4688feb13971058f65
thermal: intel: int340x: Protect trip temperature from concurrent updates

Trip temperatures are read using ACPI methods and stored in the memory
during zone initializtion and when the firmware sends a notification for
change. This trip temperature is returned when the thermal core calls via
callback get_trip_temp().

But it is possible that while updating the memory copy of the trips when
the firmware sends a notification for change, thermal core is reading the
trip temperature via the callback get_trip_temp(). This may return invalid
trip temperature.

To address this add a mutex to protect the invalid temperature reads in
the callback get_trip_temp() and int340x_thermal_read_trips().

Fixes: 5fbf7f27fa3d ("Thermal/int340x: Add common thermal zone handler")
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: 5.0+ <stable@vger.kernel.org> # 5.0+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.c
drivers/thermal/intel/int340x_thermal/int340x_thermal_zone.h