linux/drivers/thermal
Manaf Meethalavalappu Pallikunhi 1e2a75c24a thermal/core: Add NULL pointer check before using cooling device stats
[ Upstream commit 2046a24ae1 ]

There is a possible chance that some cooling device stats buffer
allocation fails due to very high cooling device max state value.
Later cooling device update sysfs can try to access stats data
for the same cooling device. It will lead to NULL pointer
dereference issue.

Add a NULL pointer check before accessing thermal cooling device
stats data. It fixes the following bug

[ 26.812833] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004
[ 27.122960] Call trace:
[ 27.122963] do_raw_spin_lock+0x18/0xe8
[ 27.122966] _raw_spin_lock+0x24/0x30
[ 27.128157] thermal_cooling_device_stats_update+0x24/0x98
[ 27.128162] cur_state_store+0x88/0xb8
[ 27.128166] dev_attr_store+0x40/0x58
[ 27.128169] sysfs_kf_write+0x50/0x68
[ 27.133358] kernfs_fop_write+0x12c/0x1c8
[ 27.133362] __vfs_write+0x54/0x160
[ 27.152297] vfs_write+0xcc/0x188
[ 27.157132] ksys_write+0x78/0x108
[ 27.162050] ksys_write+0xf8/0x108
[ 27.166968] __arm_smccc_hvc+0x158/0x4b0
[ 27.166973] __arm_smccc_hvc+0x9c/0x4b0
[ 27.186005] el0_svc+0x8/0xc

Signed-off-by: Manaf Meethalavalappu Pallikunhi <manafm@codeaurora.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/1607367181-24589-1-git-send-email-manafm@codeaurora.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-04-07 15:00:06 +02:00
..
broadcom
intel thermal: int340x: Add keep alive response method 2020-10-12 12:08:36 +02:00
qcom - Fix bogus thermal shutdowns for omap4430 where bogus values 2020-09-04 12:49:03 -07:00
samsung
st thermal: stm32: simplify the return expression of stm_thermal_prepare() 2020-10-12 12:08:35 +02:00
tegra
ti-soc-thermal thermal: ti-soc-thermal: Disable the CPU PM notifier for OMAP4430 2020-11-12 12:30:29 +01:00
amlogic_thermal.c
armada_thermal.c
cpufreq_cooling.c thermal: cpufreq_cooling: freq_qos_update_request() returns < 0 on error 2021-03-04 11:38:41 +01:00
cpuidle_cooling.c thermal/idle_inject: Fix comment of idle_duration_us and name of latency_ns 2020-10-12 12:08:35 +02:00
da9062-thermal.c
db8500_thermal.c
devfreq_cooling.c thermal: cooling: Remove unused variable *tz 2020-10-12 12:08:36 +02:00
dove_thermal.c
gov_bang_bang.c
gov_fair_share.c
gov_power_allocator.c thermal: cooling: Remove unused variable *tz 2020-10-12 12:08:36 +02:00
gov_step_wise.c
gov_user_space.c
hisi_thermal.c
imx_sc_thermal.c
imx_thermal.c thermal: imx: Use dev_err_probe() to simplify error handling 2020-10-12 12:08:34 +02:00
imx8mm_thermal.c thermal: imx8mm: Use dev_err_probe() to simplify error handling 2020-10-12 12:08:35 +02:00
k3_bandgap.c
Kconfig thermal: Kconfig: Update description for RCAR_GEN3_THERMAL config 2020-10-12 12:08:35 +02:00
khadas_mcu_fan.c
kirkwood_thermal.c
Makefile - Core Frameworks 2020-08-15 08:09:38 -07:00
max77620_thermal.c
mtk_thermal.c - Add support to enable/disable the thermal zones resulting on core code and 2020-08-06 18:10:55 -07:00
qoriq_thermal.c
rcar_gen3_thermal.c - Add support to enable/disable the thermal zones resulting on core code and 2020-08-06 18:10:55 -07:00
rcar_thermal.c thermal: rcar_thermal: Add missing braces to conditional statement 2020-10-12 12:08:35 +02:00
rockchip_thermal.c
spear_thermal.c
sprd_thermal.c - Add support to enable/disable the thermal zones resulting on core code and 2020-08-06 18:10:55 -07:00
sun8i_thermal.c thermal: sun8i: Add A100's THS controller support 2020-10-12 12:08:36 +02:00
tango_thermal.c
thermal_core.c thermal: cooling: Remove unused variable *tz 2020-10-12 12:08:36 +02:00
thermal_core.h treewide: Convert macro and uses of __section(foo) to __section("foo") 2020-10-25 14:51:49 -07:00
thermal_helpers.c
thermal_hwmon.c
thermal_hwmon.h
thermal_mmio.c
thermal_netlink.c - Fix Kconfig typo "acces" -> "access" (Colin Ian King) 2020-10-17 10:40:22 -07:00
thermal_netlink.h thermal: netlink: Improve the initcall ordering 2020-07-21 10:40:08 +02:00
thermal_of.c
thermal_sysfs.c thermal/core: Add NULL pointer check before using cooling device stats 2021-04-07 15:00:06 +02:00
thermal-generic-adc.c
uniphier_thermal.c
zx2967_thermal.c