Messages in this thread Patch in this message | | | From | Zhang Rui <> | Subject | [PATCH] thermal: intel: intel_soc_dts_iosf: Fix thermal_zone removal | Date | Fri, 11 Aug 2023 16:45:23 +0800 |
| |
All of the existing callers of remove_dts_thermal_zone() pass a valid pointer as the argument, so checking for the NULL pointer is redundant.
Plus, when calling remove_dts_thermal_zone() from intel_soc_dts_iosf_init(), it is possible that 1. dts->tzone is an error pointer, when the sensor fails to be registered as a valid thermal zone 2. dts->tzone is unregistered in add_dts_thermal_zone(), when some failure occurs after thermal zone registered In both cases, there is no need to unregister dts->tzone in remove_dts_thermal_zone().
Clear dst->tzone when add_dts_thermal_zone() fails. And do thermal zone removal in remove_dts_thermal_zone() only when dts->tzone is set.
Signed-off-by: Zhang Rui <rui.zhang@intel.com> --- drivers/thermal/intel/intel_soc_dts_iosf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/thermal/intel/intel_soc_dts_iosf.c b/drivers/thermal/intel/intel_soc_dts_iosf.c index 7a66d0f077b0..c5203ba8f0b9 100644 --- a/drivers/thermal/intel/intel_soc_dts_iosf.c +++ b/drivers/thermal/intel/intel_soc_dts_iosf.c @@ -212,7 +212,7 @@ static int soc_dts_enable(int id) static void remove_dts_thermal_zone(struct intel_soc_dts_sensor_entry *dts) { - if (dts) { + if (dts->tzone) { iosf_mbi_write(BT_MBI_UNIT_PMC, MBI_REG_WRITE, SOC_DTS_OFFSET_ENABLE, dts->store_status); thermal_zone_device_unregister(dts->tzone); @@ -277,6 +277,7 @@ static int add_dts_thermal_zone(int id, struct intel_soc_dts_sensor_entry *dts, err_enable: thermal_zone_device_unregister(dts->tzone); err_ret: + dts->tzone = NULL; return ret; } -- 2.34.1
| |