diff mbox series

thermal: of: fix OF node leak in of_thermal_zone_find()

Message ID 20241224031809.950461-1-joe@pf.is.s.u-tokyo.ac.jp
State Accepted
Commit 9164e0912af206a72ddac4915f7784e470a04ace
Headers show
Series thermal: of: fix OF node leak in of_thermal_zone_find() | expand

Commit Message

Joe Hattori Dec. 24, 2024, 3:18 a.m. UTC
of_thermal_zone_find() calls of_parse_phandle_with_args(), but does not
release the OF node reference obtained by it. Therefore, add a
of_node_put() call when the call is successful.

Fixes: 3fd6d6e2b4e8 ("thermal/of: Rework the thermal device tree initialization")
Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
---
 drivers/thermal/thermal_of.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Rafael J. Wysocki Jan. 7, 2025, 7:09 p.m. UTC | #1
On Tue, Dec 24, 2024 at 4:18 AM Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp> wrote:
>
> of_thermal_zone_find() calls of_parse_phandle_with_args(), but does not
> release the OF node reference obtained by it. Therefore, add a
> of_node_put() call when the call is successful.
>
> Fixes: 3fd6d6e2b4e8 ("thermal/of: Rework the thermal device tree initialization")
> Signed-off-by: Joe Hattori <joe@pf.is.s.u-tokyo.ac.jp>
> ---
>  drivers/thermal/thermal_of.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
> index fab11b98ca49..5ab4ce4daaeb 100644
> --- a/drivers/thermal/thermal_of.c
> +++ b/drivers/thermal/thermal_of.c
> @@ -160,6 +160,7 @@ static struct device_node *of_thermal_zone_find(struct device_node *sensor, int
>                                 return ERR_PTR(ret);
>                         }
>
> +                       of_node_put(sensor_specs.np);
>                         if ((sensor == sensor_specs.np) && id == (sensor_specs.args_count ?
>                                                                   sensor_specs.args[0] : 0)) {
>                                 pr_debug("sensor %pOFn id=%d belongs to %pOFn\n", sensor, id, child);
> --

Applied as 6.13-rc material, thanks!
diff mbox series

Patch

diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
index fab11b98ca49..5ab4ce4daaeb 100644
--- a/drivers/thermal/thermal_of.c
+++ b/drivers/thermal/thermal_of.c
@@ -160,6 +160,7 @@  static struct device_node *of_thermal_zone_find(struct device_node *sensor, int
 				return ERR_PTR(ret);
 			}
 
+			of_node_put(sensor_specs.np);
 			if ((sensor == sensor_specs.np) && id == (sensor_specs.args_count ?
 								  sensor_specs.args[0] : 0)) {
 				pr_debug("sensor %pOFn id=%d belongs to %pOFn\n", sensor, id, child);