[v3] cpufreq: amd-pstate: Fix min_perf assignment in amd_pstate_adjust_perf()

Message ID 20240209154336.7788-1-torvic9@mailbox.org
State New
Headers
Series [v3] cpufreq: amd-pstate: Fix min_perf assignment in amd_pstate_adjust_perf() |

Commit Message

Tor Vic Feb. 9, 2024, 3:42 p.m. UTC
  In the function amd_pstate_adjust_perf(), the 'min_perf' variable is set
to 'highest_perf' instead of 'lowest_perf'.

Cc: <stable@vger.kernel.org> # 6.1+
Fixes: 1d215f0319c2 ("cpufreq: amd-pstate: Add fast switch function for AMD P-State")
Reported-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Reviewed-by: Perry Yuan <Perry.Yuan@amd.com>
Signed-off-by: Tor Vic <torvic9@mailbox.org>
---
v2->v3: Resend with git, misconfigured mail client borked v2
v1->v2: Add Perry's 'Reviewed-by' and 'Cc: stable' tag
---
 drivers/cpufreq/amd-pstate.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Mario Limonciello Feb. 9, 2024, 3:49 p.m. UTC | #1
On 2/9/2024 09:42, Tor Vic wrote:
> In the function amd_pstate_adjust_perf(), the 'min_perf' variable is set
> to 'highest_perf' instead of 'lowest_perf'.
> 
> Cc: <stable@vger.kernel.org> # 6.1+
> Fixes: 1d215f0319c2 ("cpufreq: amd-pstate: Add fast switch function for AMD P-State")
> Reported-by: Oleksandr Natalenko <oleksandr@natalenko.name>
> Reviewed-by: Perry Yuan <Perry.Yuan@amd.com>
> Signed-off-by: Tor Vic <torvic9@mailbox.org>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
> v2->v3: Resend with git, misconfigured mail client borked v2
> v1->v2: Add Perry's 'Reviewed-by' and 'Cc: stable' tag
> ---
>   drivers/cpufreq/amd-pstate.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> index 08e112444c27..aa5e57e27d2b 100644
> --- a/drivers/cpufreq/amd-pstate.c
> +++ b/drivers/cpufreq/amd-pstate.c
> @@ -577,7 +577,7 @@ static void amd_pstate_adjust_perf(unsigned int cpu,
>   	if (target_perf < capacity)
>   		des_perf = DIV_ROUND_UP(cap_perf * target_perf, capacity);
>   
> -	min_perf = READ_ONCE(cpudata->highest_perf);
> +	min_perf = READ_ONCE(cpudata->lowest_perf);
>   	if (_min_perf < capacity)
>   		min_perf = DIV_ROUND_UP(cap_perf * _min_perf, capacity);
>
  
Rafael J. Wysocki Feb. 12, 2024, 3:41 p.m. UTC | #2
On Fri, Feb 9, 2024 at 4:50 PM Mario Limonciello
<mario.limonciello@amd.com> wrote:
>
> On 2/9/2024 09:42, Tor Vic wrote:
> > In the function amd_pstate_adjust_perf(), the 'min_perf' variable is set
> > to 'highest_perf' instead of 'lowest_perf'.
> >
> > Cc: <stable@vger.kernel.org> # 6.1+
> > Fixes: 1d215f0319c2 ("cpufreq: amd-pstate: Add fast switch function for AMD P-State")
> > Reported-by: Oleksandr Natalenko <oleksandr@natalenko.name>
> > Reviewed-by: Perry Yuan <Perry.Yuan@amd.com>
> > Signed-off-by: Tor Vic <torvic9@mailbox.org>
> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
> > ---
> > v2->v3: Resend with git, misconfigured mail client borked v2
> > v1->v2: Add Perry's 'Reviewed-by' and 'Cc: stable' tag
> > ---
> >   drivers/cpufreq/amd-pstate.c | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
> > index 08e112444c27..aa5e57e27d2b 100644
> > --- a/drivers/cpufreq/amd-pstate.c
> > +++ b/drivers/cpufreq/amd-pstate.c
> > @@ -577,7 +577,7 @@ static void amd_pstate_adjust_perf(unsigned int cpu,
> >       if (target_perf < capacity)
> >               des_perf = DIV_ROUND_UP(cap_perf * target_perf, capacity);
> >
> > -     min_perf = READ_ONCE(cpudata->highest_perf);
> > +     min_perf = READ_ONCE(cpudata->lowest_perf);
> >       if (_min_perf < capacity)
> >               min_perf = DIV_ROUND_UP(cap_perf * _min_perf, capacity);
> >

Applied as 6.9 material, thanks!
  

Patch

diff --git a/drivers/cpufreq/amd-pstate.c b/drivers/cpufreq/amd-pstate.c
index 08e112444c27..aa5e57e27d2b 100644
--- a/drivers/cpufreq/amd-pstate.c
+++ b/drivers/cpufreq/amd-pstate.c
@@ -577,7 +577,7 @@  static void amd_pstate_adjust_perf(unsigned int cpu,
 	if (target_perf < capacity)
 		des_perf = DIV_ROUND_UP(cap_perf * target_perf, capacity);
 
-	min_perf = READ_ONCE(cpudata->highest_perf);
+	min_perf = READ_ONCE(cpudata->lowest_perf);
 	if (_min_perf < capacity)
 		min_perf = DIV_ROUND_UP(cap_perf * _min_perf, capacity);