All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Daniel Lezcano" <daniel.lezcano@oss.qualcomm.com>
Cc: linux-hwmon@vger.kernel.org
Subject: Re: [PATCH v1 13/14] thermal/of: Process cooling device index in cooling-spec
Date: Sun, 19 Apr 2026 18:51:57 +0000	[thread overview]
Message-ID: <20260419185158.50AE0C2BCAF@smtp.kernel.org> (raw)
In-Reply-To: <20260419182203.4083985-14-daniel.lezcano@oss.qualcomm.com>

Sashiko AI review found 1 potential issue(s):
- [Medium] Brittle logic uses an exact `args_count == 3` check to identify the new binding format, leading to silent misparsing of bindings with more than 3 cells.
--

commit 90bb7215d764688a8fd719c59ad60bede0aee71e
Author: Daniel Lezcano <daniel.lezcano@oss.qualcomm.com>

thermal/of: Process cooling device index in cooling-spec

This commit updates thermal OF binding parsing to support a new format that
includes a cooling device index alongside mitigation limits. It checks the
argument count from the device tree specifier to differentiate between the
legacy and new formats.

> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
> index d9bd7dc01e19a..e9b39d625b0ce 100644
> --- a/drivers/thermal/thermal_of.c
> +++ b/drivers/thermal/thermal_of.c
[ ... ]
> @@ -264,11 +264,29 @@ static bool thermal_of_get_cooling_spec(struct device_node *map_np, int index,
>  		return false;
>  	}
>  
> +	/*
> +	 * There are two formats:
> +	 * - Legacy format :	<&cdev lower upper>
> +	 * - New format    :	<&cdev of_index lower upper>
> +	 *
> +	 * With the new format, along with the device node pointer,
> +	 * the of_index must match with the cooling device of_index in
> +	 * order to bind
> +	 */
> +	if (cooling_spec.args_count == 3 &&
> +	    cooling_spec.args[0] != cdev->of_index)
> +		return false;

Does this code bypass the index validation for malformed bindings or future
extensions? If a device tree specifies a cell count greater than 3, this
condition evaluates to false and skips the check entirely.

> +
>  	if (cooling_spec.np != cdev->np)
>  		return false;
>  
> -	c->lower = cooling_spec.args[0];
> -	c->upper = cooling_spec.args[1];
> +	if (cooling_spec.args_count != 3) {
> +		c->lower = cooling_spec.args[0];
> +		c->upper = cooling_spec.args[1];

Will this incorrectly parse the limits if the argument count is greater than 3?

Since a count greater than 3 falls into this legacy branch, it would assign
the device index from args[0] to the lower limit, instead of args[1].

Should this logic either explicitly reject counts greater than 3, or use a
greater-than-or-equal condition to identify the new format?

> +	} else {
> +		c->lower = cooling_spec.args[1];
> +		c->upper = cooling_spec.args[2];
> +	}

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260419182203.4083985-1-daniel.lezcano@oss.qualcomm.com?part=13

  reply	other threads:[~2026-04-19 18:51 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
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 [this message]
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=20260419185158.50AE0C2BCAF@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.