From: Chen-Yu Tsai <wenst@chromium.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
Daniel Lezcano <daniel.lezcano@linaro.org>,
Zhang Rui <rui.zhang@intel.com>,
Lukasz Luba <lukasz.luba@arm.com>,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH 2/3] thermal: of: Fix OF node leak in thermal_of_zone_register()
Date: Thu, 15 Aug 2024 12:51:38 +0800 [thread overview]
Message-ID: <20240815045138.GB255011@google.com> (raw)
In-Reply-To: <20240814195823.437597-2-krzysztof.kozlowski@linaro.org>
On Wed, Aug 14, 2024 at 09:58:22PM +0200, Krzysztof Kozlowski wrote:
> thermal_of_zone_register() calls of_thermal_zone_find() which will
> iterate over OF nodes with for_each_available_child_of_node() to find
> matching thermal zone node. When it finds such, it exits the loop and
> returns the node. Prematurely ending for_each_available_child_of_node()
> loops requires dropping OF node reference, thus success of
> of_thermal_zone_find() means that caller must drop the reference.
>
> Fixes: 3fd6d6e2b4e8 ("thermal/of: Rework the thermal device tree initialization")
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
> ---
> drivers/thermal/thermal_of.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
> index 30f8d6e70484..b08a9b64718d 100644
> --- a/drivers/thermal/thermal_of.c
> +++ b/drivers/thermal/thermal_of.c
> @@ -491,7 +491,8 @@ static struct thermal_zone_device *thermal_of_zone_register(struct device_node *
> trips = thermal_of_trips_init(np, &ntrips);
> if (IS_ERR(trips)) {
> pr_err("Failed to find trip points for %pOFn id=%d\n", sensor, id);
> - return ERR_CAST(trips);
> + ret = PTR_ERR(trips);
> + goto out_of_node_put;
> }
>
> ret = thermal_of_monitor_init(np, &delay, &pdelay);
> @@ -519,6 +520,7 @@ static struct thermal_zone_device *thermal_of_zone_register(struct device_node *
> goto out_kfree_trips;
> }
>
> + of_node_put(np);
> kfree(trips);
>
> ret = thermal_zone_device_enable(tz);
> @@ -533,6 +535,8 @@ static struct thermal_zone_device *thermal_of_zone_register(struct device_node *
>
> out_kfree_trips:
> kfree(trips);
> +out_of_node_put:
> + of_node_put(np);
>
> return ERR_PTR(ret);
> }
> --
> 2.43.0
>
next prev parent reply other threads:[~2024-08-15 4:51 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-14 19:58 [PATCH 1/3] thermal: of: Fix OF node leak in thermal_of_trips_init() error path Krzysztof Kozlowski
2024-08-14 19:58 ` [PATCH 2/3] thermal: of: Fix OF node leak in thermal_of_zone_register() Krzysztof Kozlowski
2024-08-15 4:51 ` Chen-Yu Tsai [this message]
2024-08-22 16:10 ` Daniel Lezcano
2024-08-14 19:58 ` [PATCH 3/3] thermal: of: Fix OF node leak in of_thermal_zone_find() error paths Krzysztof Kozlowski
2024-08-15 4:54 ` Chen-Yu Tsai
2024-08-22 16:11 ` Daniel Lezcano
2024-08-22 19:05 ` Rafael J. Wysocki
2024-08-15 4:48 ` [PATCH 1/3] thermal: of: Fix OF node leak in thermal_of_trips_init() error path Chen-Yu Tsai
2024-08-15 6:48 ` Markus Elfring
2024-08-19 10:12 ` Daniel Lezcano
2024-08-19 13:20 ` Rafael J. Wysocki
2024-08-19 13:22 ` Daniel Lezcano
2024-08-19 13:31 ` Rafael J. Wysocki
2024-08-22 15:54 ` Rafael J. Wysocki
2024-08-22 16:09 ` Daniel Lezcano
2024-08-22 16:09 ` Daniel Lezcano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240815045138.GB255011@google.com \
--to=wenst@chromium.org \
--cc=daniel.lezcano@linaro.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lukasz.luba@arm.com \
--cc=rafael@kernel.org \
--cc=rui.zhang@intel.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.