The commit 17e8351a7739 consistently use int for temperature, however it missed a few in trip temperature and thermal_core.
In current codes, the trip->temperature used "unsigned long" and zone->temperature used"int", if the temperature is negative value, it will get wrong result when compare temperature with trip temperature. This patch can fix it. Signed-off-by: Wei Ni <w...@nvidia.com> --- drivers/thermal/thermal_core.c | 4 ++-- include/linux/thermal.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index a0a8fd1235e2..2cde55474e34 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -684,7 +684,7 @@ trip_point_temp_store(struct device *dev, struct device_attribute *attr, { struct thermal_zone_device *tz = to_thermal_zone(dev); int trip, ret; - unsigned long temperature; + int temperature; if (!tz->ops->set_trip_temp) return -EPERM; @@ -895,7 +895,7 @@ emul_temp_store(struct device *dev, struct device_attribute *attr, { struct thermal_zone_device *tz = to_thermal_zone(dev); int ret = 0; - unsigned long temperature; + int temperature; if (kstrtoul(buf, 10, &temperature)) return -EINVAL; diff --git a/include/linux/thermal.h b/include/linux/thermal.h index e13a1ace50e9..eee0b7ddd2c1 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -350,8 +350,8 @@ struct thermal_zone_of_device_ops { struct thermal_trip { struct device_node *np; - unsigned long int temperature; - unsigned long int hysteresis; + int temperature; + int hysteresis; enum thermal_trip_type type; }; -- 1.9.1