linux/drivers/thermal
Dien Pham 5f8f06425a thermal/drivers/rcar_gen3: Fix undefined temperature if negative
As description for DIV_ROUND_CLOSEST in file include/linux/kernel.h.
  "Result is undefined for negative divisors if the dividend variable
   type is unsigned and for negative dividends if the divisor variable
   type is unsigned."

In current code, the FIXPT_DIV uses DIV_ROUND_CLOSEST but has not
checked sign of divisor before using. It makes undefined temperature
value in case the value is negative.

This patch fixes to satisfy DIV_ROUND_CLOSEST description
and fix bug too. Note that the variable name "reg" is not good
because it should be the same type as rcar_gen3_thermal_read().
However, it's better to rename the "reg" in a further patch as
cleanup.

Signed-off-by: Van Do <van.do.xw@renesas.com>
Signed-off-by: Dien Pham <dien.pham.ry@renesas.com>
[shimoda: minor fixes, add Fixes tag]
Fixes: 564e73d283 ("thermal: rcar_gen3_thermal: Add R-Car Gen3 thermal driver")
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Reviewed-by: Niklas Soderlund <niklas.soderlund+renesas@ragnatech.se>
Tested-by: Niklas Soderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/1593085099-2057-1-git-send-email-yoshihiro.shimoda.uh@renesas.com
2020-06-29 12:15:34 +02:00
..
broadcom thermal: brcmstb_thermal: Register different ops per process 2020-01-27 11:41:08 +01:00
intel thermal/int340x_thermal: Don't require IDSP to exist 2020-05-29 20:26:51 +02:00
qcom thermal/drivers/tsens: Fix compilation warnings by making functions static 2020-06-29 12:14:18 +02:00
samsung thermal: exynos: Silence warning during deferred probe 2020-03-12 11:56:53 +01:00
st thermal: Delete an error message in four functions 2020-04-14 11:41:12 +02:00
tegra thermal: tegra: Appease the kernel-doc deity 2020-01-27 10:24:32 +01:00
ti-soc-thermal thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR 2020-04-29 16:38:58 +02:00
amlogic_thermal.c thermal: amlogic: Appease the kernel-doc deity 2020-01-27 10:24:32 +01:00
armada_thermal.c thermal: armada: remove unused TO_MCELSIUS macro 2020-01-31 10:30:40 -08:00
clock_cooling.c thermal/drivers/clock_cooling: Include export.h 2020-05-22 18:48:54 +02:00
cpufreq_cooling.c thermal/drivers/cpufreq_cooling: Fix wrong frequency converted from power 2020-06-29 12:15:27 +02:00
cpuidle_cooling.c thermal/drivers/cpuidle_cooling: Change the registration function 2020-05-19 12:55:29 +02:00
da9062-thermal.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
db8500_thermal.c thermal: db8500: Depromote debug print 2020-01-27 10:24:32 +01:00
devfreq_cooling.c thermal: devfreq_cooling: Use PM QoS to set frequency limits 2020-04-14 11:41:12 +02:00
dove_thermal.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
gov_bang_bang.c thermal: step_wise: Appease the kernel-doc deity 2020-01-27 10:24:32 +01:00
gov_fair_share.c thermal/governors: Prefix all source files with gov_ 2020-05-22 18:48:54 +02:00
gov_power_allocator.c thermal/governors: Prefix all source files with gov_ 2020-05-22 18:48:54 +02:00
gov_step_wise.c thermal/governors: Prefix all source files with gov_ 2020-05-22 18:48:54 +02:00
gov_user_space.c thermal/governors: Prefix all source files with gov_ 2020-05-22 18:48:54 +02:00
hisi_thermal.c
imx8mm_thermal.c thermal: imx8mm: Replace zero-length array with flexible-array 2020-05-22 18:45:15 +02:00
imx_sc_thermal.c - Add the hwmon support on the i.MX SC (Anson Huang) 2020-06-12 14:10:21 -07:00
imx_thermal.c thermal/drivers: imx: Fix missing of_node_put() at probe time 2020-06-29 12:13:11 +02:00
k3_bandgap.c thermal: k3: Add support for bandgap sensors 2020-04-14 11:41:12 +02:00
Kconfig thermal: qoriq: Add platform dependencies 2020-05-22 18:56:29 +02:00
kirkwood_thermal.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
Makefile thermal/of: Rename of-thermal.c 2020-05-22 18:48:54 +02:00
max77620_thermal.c thermal: max77620: Appease the kernel-doc deity 2020-01-27 10:24:32 +01:00
mtk_thermal.c thermal/drivers/mediatek: Fix bank number settings on mt8183 2020-06-29 12:13:38 +02:00
qoriq_thermal.c thermal: qoriq: Update the settings for TMUv2 2020-05-29 20:26:51 +02:00
rcar_gen3_thermal.c thermal/drivers/rcar_gen3: Fix undefined temperature if negative 2020-06-29 12:15:34 +02:00
rcar_thermal.c thermal: rcar_thermal: Clean up rcar_thermal_update_temp() 2020-05-22 21:09:59 +02:00
rockchip_thermal.c thermal: Delete an error message in four functions 2020-04-14 11:41:12 +02:00
spear_thermal.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
sprd_thermal.c thermal/drivers/sprd: Fix return value of sprd_thm_probe() 2020-06-29 12:14:07 +02:00
sun8i_thermal.c thermal: sun8i: Add hwmon support 2020-01-27 11:41:08 +01:00
tango_thermal.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
thermal_core.c thermal/core: Replace module.h with export.h 2020-05-22 18:48:53 +02:00
thermal_core.h thermal: Move get_thermal_instance to the internal header 2020-04-14 11:41:12 +02:00
thermal_helpers.c thermal/drivers/thermal_helpers: Include export.h 2020-05-22 18:48:53 +02:00
thermal_hwmon.c thermal/drivers/thermal_hwmon: Include export.h 2020-05-22 18:48:53 +02:00
thermal_hwmon.h thermal_hwmon: Add devres wrapper for thermal_add_hwmon_sysfs() 2020-01-27 10:24:32 +01:00
thermal_mmio.c thermal: no need to set .owner when using module_platform_driver 2019-11-07 07:00:26 +01:00
thermal_of.c thermal/of: Rename of-thermal.c 2020-05-22 18:48:54 +02:00
thermal_sysfs.c
thermal-generic-adc.c thermal: generic-adc: silence info message for IIO_TEMP channels 2020-01-27 10:24:32 +01:00
uniphier_thermal.c
zx2967_thermal.c thermal: zx2967: Appease the kernel-doc deity 2020-01-27 10:24:32 +01:00