linux/drivers/thermal
Rafael J. Wysocki 9e07e3b818 thermal: core: Fix thermal zone device registration error path
If thermal_zone_device_register_with_trips() fails after registering
a thermal zone device, it needs to wait for the tz->removal completion
like thermal_zone_device_unregister(), in case user space has managed
to take a reference to the thermal zone device's kobject, in which case
thermal_release() may not be called by the error path itself and tz may
be freed prematurely.

Add the missing wait_for_completion() call to the thermal zone device
registration error path.

Fixes: 04e6ccfc93 ("thermal: core: Fix NULL pointer dereference in zone registration error path")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: All applicable <stable@vger.kernel.org>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Tested-by: Lukasz Luba <lukasz.luba@arm.com>
Link: https://patch.msgid.link/2849815.mvXUDI8C0e@rafael.j.wysocki
2026-04-02 11:37:35 +02:00
..
broadcom thermal/drivers/broadcom: Use clamp to simplify bcm2835_thermal_temp2adc 2026-01-21 17:04:41 +01:00
intel thermal: intel: int340x: soc_slider: Set offset only for balanced mode 2026-03-24 19:00:12 +01:00
mediatek thermal/drivers/mediatek/lvts_thermal: Add mt7987 support 2026-01-20 20:55:03 +01:00
qcom thermal/qcom/lmh: Replace IRQF_ONESHOT with IRQF_NO_THREAD 2026-02-01 17:37:16 +01:00
renesas thermal: renesas: rzg3e: add support for RZ/T2H and RZ/N2H 2026-01-21 19:06:57 +01:00
samsung thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
st thermal/drivers/stm32: Use predefined HZ_PER_MHZ instead of a custom one 2026-01-21 16:29:23 +01:00
tegra thermal/drivers/tegra: Add Tegra114 specific SOCTHERM driver 2025-09-25 22:11:00 +02:00
testing Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
ti-soc-thermal More thermal control updates for 6.13-rc1 2024-11-22 19:43:18 -08:00
airoha_thermal.c thermal/drivers/airoha: Fix spelling mistake "calibrarion" -> "calibration" 2025-05-23 17:01:42 +02:00
amlogic_thermal.c thermal/drivers/amlogic: Rename Uptat to uptat to follow kernel coding style 2025-05-16 12:50:01 +02:00
armada_thermal.c thermal: Constify struct thermal_zone_device_ops 2025-07-15 15:26:04 +02:00
cpufreq_cooling.c Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
cpuidle_cooling.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
da9062-thermal.c thermal: Constify struct thermal_zone_device_ops 2025-07-15 15:26:04 +02:00
db8500_thermal.c
devfreq_cooling.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
dove_thermal.c thermal: Constify struct thermal_zone_device_ops 2025-07-15 15:26:04 +02:00
gov_bang_bang.c thermal: core: Rename function argument related to trip crossing 2025-01-17 18:48:58 +01:00
gov_fair_share.c thermal: core: Introduce thermal_cdev_update_nocheck() 2024-10-23 11:57:11 +02:00
gov_power_allocator.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
gov_step_wise.c thermal: gov_step_wise: Allow cooling level to be reduced earlier 2025-09-04 21:28:01 +02:00
gov_user_space.c thermal: core: Rename function argument related to trip crossing 2025-01-17 18:48:58 +01:00
hisi_thermal.c thermal: hisi: Use kcalloc() instead of kzalloc() with multiplication 2025-02-26 20:55:42 +01:00
imx_sc_thermal.c
imx_thermal.c thermal: Constify struct thermal_zone_device_ops 2025-07-15 15:26:04 +02:00
imx8mm_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
imx91_thermal.c thermal/drivers/imx91: Add support for i.MX91 thermal monitoring unit 2025-11-26 15:51:28 +01:00
k3_bandgap.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
k3_j72xx_bandgap.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
Kconfig thermal/drivers/imx91: Add support for i.MX91 thermal monitoring unit 2025-11-26 15:51:28 +01:00
khadas_mcu_fan.c
kirkwood_thermal.c thermal: Constify struct thermal_zone_device_ops 2025-07-15 15:26:04 +02:00
loongson2_thermal.c thermal/drivers/loongson2: Constify struct thermal_zone_device_ops 2025-07-15 15:23:38 +02:00
Makefile thermal/drivers/imx91: Add support for i.MX91 thermal monitoring unit 2025-11-26 15:51:28 +01:00
max77620_thermal.c
pcie_cooling.c thermal: Add PCIe cooling driver 2024-11-16 10:09:30 -06:00
qoriq_thermal.c thermal/drivers/qoriq: Power down TMU on system suspend 2025-03-25 20:52:03 +01:00
rockchip_thermal.c thermal/drivers/rockchip: Shut up GRF warning 2025-09-25 22:11:00 +02:00
spear_thermal.c thermal: Constify struct thermal_zone_device_ops 2025-07-15 15:26:04 +02:00
sprd_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00
sun8i_thermal.c thermal: sun8i: Use scoped device node handling to simplify error paths 2024-11-26 13:28:43 +01:00
thermal_core.c thermal: core: Fix thermal zone device registration error path 2026-04-02 11:37:35 +02:00
thermal_core.h thermal: core: thermal_core.h: fix all kernel-doc warnings 2026-01-28 22:07:27 +01:00
thermal_debugfs.c Convert 'alloc_flex' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
thermal_debugfs.h
thermal_helpers.c thermal: core: Add and use cooling device guard 2024-10-24 14:48:23 +02:00
thermal_hwmon.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
thermal_hwmon.h
thermal_mmio.c
thermal_netlink.c thermal: netlink: Add the commands and the events for the thresholds 2024-10-24 14:54:01 +02:00
thermal_netlink.h thermal: netlink: Add the commands and the events for the thresholds 2024-10-24 14:54:01 +02:00
thermal_of.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
thermal_sysfs.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
thermal_thresholds.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
thermal_thresholds.h thermal: netlink: Add the commands and the events for the thresholds 2024-10-24 14:54:01 +02:00
thermal_trace_ipa.h
thermal_trace.h
thermal_trip.c thermal: core: Relocate functions that update trip points 2024-10-24 17:15:07 +02:00
thermal-generic-adc.c thermal/drivers/thermal-generic-adc: Add temperature sensor channel 2025-09-25 22:11:00 +02:00
uniphier_thermal.c thermal: Switch back to struct platform_driver::remove() 2024-11-13 16:17:57 +01:00