android_kernel_samsung_sm8650/drivers/thermal
Ido Schimmel 6ddc868239 thermal/of: Fix memory leak on thermal_of_zone_register() failure
[ Upstream commit 7ef2f023c2c77a452ba5d0c9b1ad04a5a895d553 ]

The function does not free 'of_ops' upon failure, leading to a memory
leak [1].

Fix by freeing 'of_ops' in the error path.

[1]
unreferenced object 0xffff8ee846198c80 (size 128):
  comm "swapper/0", pid 1, jiffies 4294699704 (age 70.076s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    d0 3f 6e 8c ff ff ff ff 00 00 00 00 00 00 00 00  .?n.............
  backtrace:
    [<00000000d136f562>] __kmalloc_node_track_caller+0x42/0x120
    [<0000000063f31678>] kmemdup+0x1d/0x40
    [<00000000e6d24096>] thermal_of_zone_register+0x49/0x520
    [<000000005e78c755>] devm_thermal_of_zone_register+0x54/0x90
    [<00000000ee6b209e>] pmbus_add_sensor+0x1b4/0x1d0
    [<00000000896105e3>] pmbus_add_sensor_attrs_one+0x123/0x440
    [<0000000049e990a6>] pmbus_add_sensor_attrs+0xfe/0x1d0
    [<00000000466b5440>] pmbus_do_probe+0x66b/0x14e0
    [<0000000084d42285>] i2c_device_probe+0x13b/0x2f0
    [<0000000029e2ae74>] really_probe+0xce/0x2c0
    [<00000000692df15c>] driver_probe_device+0x19/0xd0
    [<00000000547d9cce>] __device_attach_driver+0x6f/0x100
    [<0000000020abd24b>] bus_for_each_drv+0x76/0xc0
    [<00000000665d9563>] __device_attach+0xfc/0x180
    [<000000008ddd4d6a>] bus_probe_device+0x82/0xa0
    [<000000009e61132b>] device_add+0x3fe/0x920

Fixes: 3fd6d6e2b4 ("thermal/of: Rework the thermal device tree initialization")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Vadim Pasternak <vadimp@nvidia.com>
Link: https://lore.kernel.org/r/20221020103658.802457-1-idosch@nvidia.com
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-12-31 13:32:43 +01:00
..
broadcom thermal/drivers/broadcom: Switch to new of API 2022-08-17 14:09:38 +02:00
intel thermal: intel_powerclamp: Use first online CPU as control_cpu 2022-10-15 19:33:57 +02:00
qcom More thermal control updates for 6.1-rc1 2022-10-10 13:52:14 -07:00
samsung thermal/drivers/samsung: Switch to new of thermal API 2022-08-17 14:09:39 +02:00
st thermal/drivers/st: Switch to new of API 2022-08-17 14:09:38 +02:00
tegra thermal/drivers/tegra: Switch to new of API 2022-08-17 14:09:38 +02:00
ti-soc-thermal thermal/drivers/ti-soc: Switch to new of API 2022-08-17 14:09:38 +02:00
amlogic_thermal.c thermal/drivers/amlogic: Switch to new of API 2022-08-17 14:09:38 +02:00
armada_thermal.c thermal/drivers/armada: Switch to new of API 2022-08-17 14:09:38 +02:00
cpufreq_cooling.c Merge branches 'thermal-intel' and 'thermal-drivers' 2022-10-03 20:43:32 +02:00
cpuidle_cooling.c thermal/drivers/cpuidle_cooling: Fix use after error 2021-04-15 13:21:26 +02:00
da9062-thermal.c thermal: da9062-thermal: Drop redundant error message 2022-08-31 20:58:25 +02:00
db8500_thermal.c thermal/drivers/db8500: Switch to new of API 2022-08-17 14:09:38 +02:00
devfreq_cooling.c Thermal control updates for 5.20-rc1 2022-08-02 11:27:53 -07:00
dove_thermal.c thermal: Explicitly enable non-changing thermal zone devices 2020-06-29 20:26:37 +02:00
gov_bang_bang.c thermal/core: Move the thermal zone lock out of the governors 2022-08-17 14:09:39 +02:00
gov_fair_share.c thermal/core: Move the thermal zone lock out of the governors 2022-08-17 14:09:39 +02:00
gov_power_allocator.c thermal/core: Move the thermal zone lock out of the governors 2022-08-17 14:09:39 +02:00
gov_step_wise.c thermal/core: Move the thermal zone lock out of the governors 2022-08-17 14:09:39 +02:00
gov_user_space.c thermal: gov_user_space: Do not lock thermal zone mutex 2022-08-30 20:18:47 +02:00
hisi_thermal.c thermal/drivers/hisilicon: Switch to new of API 2022-08-17 14:09:38 +02:00
imx8mm_thermal.c thermal/drivers/imx8mm_thermal: Validate temperature range 2022-12-31 13:32:43 +01:00
imx_sc_thermal.c thermal/drivers/imx_sc: Rely on the platform data to get the resource id 2022-10-04 11:20:59 +02:00
imx_thermal.c thermal/drivers/imx: Implement runtime PM support 2021-11-30 15:42:28 +01:00
k3_bandgap.c thermal/drivers/banggap: Switch to new of API 2022-08-17 14:09:38 +02:00
k3_j72xx_bandgap.c thermal/drivers/k3_j72xx_bandgap: Fix the debug print message 2022-12-31 13:32:43 +01:00
Kconfig thermal: Drop obsolete dependency on COMPILE_TEST 2022-08-03 19:15:31 +02:00
khadas_mcu_fan.c thermal/core: Make cooling device state change private 2021-01-19 22:31:10 +01:00
kirkwood_thermal.c thermal: Explicitly enable non-changing thermal zone devices 2020-06-29 20:26:37 +02:00
Makefile thermal/drivers/qcom: Drop false build dependency of all QCOM drivers on QCOM_TSENS 2022-10-04 11:21:11 +02:00
max77620_thermal.c thermal/drivers/maxim: Switch to new of API 2022-08-17 14:09:38 +02:00
mtk_thermal.c thermal/drivers/mtk: Switch to new of API 2022-08-17 14:09:38 +02:00
qoriq_thermal.c thermal/drivers/qoriq: Switch to new of API 2022-08-17 14:09:38 +02:00
rcar_gen3_thermal.c thermal/drivers/rcar: Switch to new of API 2022-08-17 14:09:38 +02:00
rcar_thermal.c thermal/drivers/rcar_thermal: Constify static thermal_zone_device_ops 2022-10-04 11:21:18 +02:00
rockchip_thermal.c thermal/drivers/rockchip: Switch to new of API 2022-08-17 14:09:37 +02:00
rzg2l_thermal.c thermal/drivers/rzg2l: Switch to new of API 2022-08-17 14:09:38 +02:00
spear_thermal.c thermal: Explicitly enable non-changing thermal zone devices 2020-06-29 20:26:37 +02:00
sprd_thermal.c thermal/drivers/sprd: Switch to new of API 2022-08-17 14:09:38 +02:00
sun8i_thermal.c thermal/drivers/sun8i: Switch to new of API 2022-08-17 14:09:38 +02:00
thermal_core.c thermal: core: fix some possible name leaks in error paths 2022-12-31 13:31:57 +01:00
thermal_core.h thermal/core: Move the mutex inside the thermal_zone_device_update() function 2022-08-17 14:09:39 +02:00
thermal_helpers.c thermal/core: Move the mutex inside the thermal_zone_device_update() function 2022-08-17 14:09:39 +02:00
thermal_hwmon.c thermal: move from strlcpy() with unused retval to strscpy() 2022-08-31 21:13:35 +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 Merge branches 'thermal-intel' and 'thermal-drivers' 2022-10-03 20:43:32 +02:00
thermal_netlink.c genetlink: start to validate reserved header bytes 2022-08-29 12:47:15 +01:00
thermal_netlink.h thermal: netlink: Fix parameter type of thermal_genl_cpu_capability_event() stub 2022-02-07 20:45:42 +01:00
thermal_of.c thermal/of: Fix memory leak on thermal_of_zone_register() failure 2022-12-31 13:32:43 +01:00
thermal_sysfs.c thermal/core: Add a check before calling set_trip_temp() 2022-10-04 11:21:36 +02:00
thermal-generic-adc.c thermal/drivers/generic-adc: Switch to new of API 2022-08-17 14:09:37 +02:00
uniphier_thermal.c thermal/drivers/uniphier: Switch to new of API 2022-08-17 14:09:37 +02:00