From: sashiko-bot@kernel.org
To: "Daniel Lezcano" <daniel.lezcano@oss.qualcomm.com>
Cc: linux-hwmon@vger.kernel.org
Subject: Re: [PATCH v1 03/14] thermal/core: Make thermal_cooling_device_init_complete() non static
Date: Sun, 19 Apr 2026 18:43:14 +0000 [thread overview]
Message-ID: <20260419184314.DBD82C2BCAF@smtp.kernel.org> (raw)
In-Reply-To: <20260419182203.4083985-4-daniel.lezcano@oss.qualcomm.com>
Sashiko AI review found 1 potential issue(s):
- [High] Missing initialization for devres-managed cooling devices leading to resource leaks and potential use-after-free.
--
commit 45d7db5abc941e576e78d521933630ff7a08efc5
Author: Daniel Lezcano <daniel.lezcano@oss.qualcomm.com>
thermal/core: Make thermal_cooling_device_init_complete() non static
This commit splits thermal_cooling_device_init_complete() out from
__thermal_cooling_device_register() so it can be called explicitly by
specific implementations like the thermal OF code.
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index 8a70768b46ddd..35cf170f3fa1c 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
[ ... ]
> @@ -1127,8 +1127,6 @@ __thermal_cooling_device_register(struct device_node *np,
> if (current_state <= cdev->max_state)
> thermal_debug_cdev_add(cdev, current_state);
>
> - thermal_cooling_device_init_complete(cdev);
> -
> return cdev;
[ ... ]
> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
> index 398157e740fc7..35d542aac7f8d 100644
> --- a/drivers/thermal/thermal_of.c
> +++ b/drivers/thermal/thermal_of.c
[ ... ]
> @@ -531,7 +531,15 @@ thermal_of_cooling_device_register(struct device_node *np,
> const char *type, void *devdata,
> const struct thermal_cooling_device_ops *ops)
> {
> - return __thermal_cooling_device_register(np, type, devdata, ops);
> + struct thermal_cooling_device *cdev;
> +
> + cdev = __thermal_cooling_device_register(np, type, devdata, ops);
> + if (IS_ERR(cdev))
> + return cdev;
> +
> + thermal_cooling_device_init_complete(cdev);
> +
> + return cdev;
> }
> EXPORT_SYMBOL_GPL(thermal_of_cooling_device_register);
Does this miss updating devm_thermal_of_cooling_device_register() which also
calls __thermal_cooling_device_register() directly?
Because thermal_cooling_device_init_complete() was removed from the inner
helper, cooling devices registered via the devm variant will no longer be
added to the global thermal_cdev_list, and consequently won't bind to any
thermal zones.
Furthermore, when devres calls thermal_cooling_device_release() on driver
unload, thermal_cooling_device_unregister() aborts early because the
device is missing from thermal_cdev_list:
void thermal_cooling_device_unregister(struct thermal_cooling_device *cdev)
{
...
if (!thermal_cooling_device_present(cdev))
return;
...
}
This skips device_unregister(), permanently leaking the memory and IDA,
and leaving dangling sysfs entries which can trigger a use-after-free if
accessed later.
While this is fixed later in the patch series by commit "thermal/of: Move
the node pointer assignation in the OF code file", will this temporary
breakage impact bisectability?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260419182203.4083985-1-daniel.lezcano@oss.qualcomm.com?part=3
next prev parent reply other threads:[~2026-04-19 18:43 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-19 18:21 [PATCH v1 00/14] Support cooling device with ID in the OF Daniel Lezcano
2026-04-19 18:21 ` [PATCH v1 01/14] thermal/of: Move OF code where it belongs to Daniel Lezcano
2026-04-19 18:47 ` sashiko-bot
2026-04-19 18:21 ` [PATCH v1 02/14] thermal/driver/tegra/soctherm: Use devm_ variant when registering a cooling device Daniel Lezcano
2026-04-19 18:38 ` sashiko-bot
2026-04-19 18:21 ` [PATCH v1 03/14] thermal/core: Make thermal_cooling_device_init_complete() non static Daniel Lezcano
2026-04-19 18:43 ` sashiko-bot [this message]
2026-04-19 18:21 ` [PATCH v1 04/14] thermal/of: Move the node pointer assignation in the OF code file Daniel Lezcano
2026-04-19 18:21 ` [PATCH v1 05/14] thermal/core: Remove node pointer parameter parameter when registering a tz Daniel Lezcano
2026-04-19 18:41 ` sashiko-bot
2026-04-19 18:21 ` [PATCH v1 06/14] thermal/core: Register cooling device non-OF drivers Daniel Lezcano
2026-04-19 18:29 ` sashiko-bot
2026-04-19 18:21 ` [PATCH v1 07/14] hwmon:: Use non-OF thermal cooling device register function Daniel Lezcano
2026-04-19 18:47 ` sashiko-bot
2026-04-22 11:59 ` Guenter Roeck
2026-04-22 15:43 ` Daniel Lezcano
2026-04-19 18:21 ` [PATCH v1 08/14] thermal/core: Move OF functions def in the CONFIG_OF section in thermal.h Daniel Lezcano
2026-04-19 18:21 ` [PATCH v1 09/14] thermal/core: Put of_node field cooling device structure under Kconfig option Daniel Lezcano
2026-04-19 18:21 ` [PATCH v1 10/14] thermal/of: Rename the devm_thermal_of_cooling_device_register() function Daniel Lezcano
2026-04-19 18:21 ` Daniel Lezcano
2026-04-19 18:34 ` sashiko-bot
2026-04-19 18:21 ` [PATCH v1 11/14] thermal/of: Introduce cooling device of_index Daniel Lezcano
2026-04-19 18:21 ` [PATCH v1 12/14] thermal/of: Pass the of_index and add a function to register with an index Daniel Lezcano
2026-04-19 18:21 ` [PATCH v1 13/14] thermal/of: Process cooling device index in cooling-spec Daniel Lezcano
2026-04-19 18:51 ` sashiko-bot
2026-04-19 18:21 ` [PATCH v1 14/14] dt-bindings: thermal: cooling-devices: Update support for 3 cells cooling device Daniel Lezcano
2026-04-22 7:31 ` Krzysztof Kozlowski
2026-04-22 16:01 ` 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=20260419184314.DBD82C2BCAF@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=daniel.lezcano@oss.qualcomm.com \
--cc=linux-hwmon@vger.kernel.org \
--cc=sashiko@lists.linux.dev \
/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.