[PATCH] thermal: intel: powerclamp: Reject invalid window_size values

Thorsten Blum posted 1 patch 1 month, 2 weeks ago
drivers/thermal/intel/intel_powerclamp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] thermal: intel: powerclamp: Reject invalid window_size values
Posted by Thorsten Blum 1 month, 2 weeks ago
window_size_set() sets ret to -EINVAL if new_window_size is outside the
valid range, but then falls through and still updates window_size to the
clamped value.

Return -EINVAL immediately and do not update window_size. Also drop the
now-redundant clamp() call.

Fixes: d6d71ee4a14a ("PM: Introduce Intel PowerClamp Driver")
Cc: stable@vger.kernel.org
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 drivers/thermal/intel/intel_powerclamp.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/thermal/intel/intel_powerclamp.c b/drivers/thermal/intel/intel_powerclamp.c
index bd7fd98dc310..8026651133d5 100644
--- a/drivers/thermal/intel/intel_powerclamp.c
+++ b/drivers/thermal/intel/intel_powerclamp.c
@@ -289,9 +289,10 @@ static int window_size_set(const char *arg, const struct kernel_param *kp)
 		pr_err("Out of recommended window size %lu, between 2-10\n",
 			new_window_size);
 		ret = -EINVAL;
+		goto exit_win;
 	}
 
-	window_size = clamp(new_window_size, 2ul, 10ul);
+	window_size = new_window_size;
 	smp_mb();
 
 exit_win:
Re: [PATCH] thermal: intel: powerclamp: Reject invalid window_size values
Posted by Rafael J. Wysocki (Intel) 3 weeks, 3 days ago
On Sat, Aug 15, 2026 at 11:01 AM Thorsten Blum <thorsten.blum@linux.dev> wrote:
>
> window_size_set() sets ret to -EINVAL if new_window_size is outside the
> valid range, but then falls through and still updates window_size to the
> clamped value.
>
> Return -EINVAL immediately and do not update window_size. Also drop the
> now-redundant clamp() call.
>
> Fixes: d6d71ee4a14a ("PM: Introduce Intel PowerClamp Driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
>  drivers/thermal/intel/intel_powerclamp.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/thermal/intel/intel_powerclamp.c b/drivers/thermal/intel/intel_powerclamp.c
> index bd7fd98dc310..8026651133d5 100644
> --- a/drivers/thermal/intel/intel_powerclamp.c
> +++ b/drivers/thermal/intel/intel_powerclamp.c
> @@ -289,9 +289,10 @@ static int window_size_set(const char *arg, const struct kernel_param *kp)
>                 pr_err("Out of recommended window size %lu, between 2-10\n",
>                         new_window_size);
>                 ret = -EINVAL;
> +               goto exit_win;
>         }
>
> -       window_size = clamp(new_window_size, 2ul, 10ul);
> +       window_size = new_window_size;
>         smp_mb();
>
>  exit_win:

Applied as 7.4 material, thanks!