powercap: dtpm_cpu: Fix error check against freq_qos_add_request()

Message ID 20240213223948.1865489-1-daniel.lezcano@linaro.org
State New
Headers
Series powercap: dtpm_cpu: Fix error check against freq_qos_add_request() |

Commit Message

Daniel Lezcano Feb. 13, 2024, 10:39 p.m. UTC
  The caller of the function freq_qos_add_request() checks again a non
zero value but freq_qos_add_request() can return '1' if the request
already exists. Therefore, the setup function fails while the QoS
request actually did not failed.

Fix that by changing the check against a negative value like all the
other callers of the function.

Fixes: 0e8f68d7f0485 ("Add CPU energy model based support")
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 drivers/powercap/dtpm_cpu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Rafael J. Wysocki Feb. 16, 2024, 7:06 p.m. UTC | #1
On Tue, Feb 13, 2024 at 11:39 PM Daniel Lezcano
<daniel.lezcano@linaro.org> wrote:
>
> The caller of the function freq_qos_add_request() checks again a non
> zero value but freq_qos_add_request() can return '1' if the request
> already exists. Therefore, the setup function fails while the QoS
> request actually did not failed.
>
> Fix that by changing the check against a negative value like all the
> other callers of the function.
>
> Fixes: 0e8f68d7f0485 ("Add CPU energy model based support")
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>  drivers/powercap/dtpm_cpu.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/powercap/dtpm_cpu.c b/drivers/powercap/dtpm_cpu.c
> index 9193c3b8edeb..ae7ee611978b 100644
> --- a/drivers/powercap/dtpm_cpu.c
> +++ b/drivers/powercap/dtpm_cpu.c
> @@ -219,7 +219,7 @@ static int __dtpm_cpu_setup(int cpu, struct dtpm *parent)
>         ret = freq_qos_add_request(&policy->constraints,
>                                    &dtpm_cpu->qos_req, FREQ_QOS_MAX,
>                                    pd->table[pd->nr_perf_states - 1].frequency);
> -       if (ret)
> +       if (ret < 0)
>                 goto out_dtpm_unregister;
>
>         cpufreq_cpu_put(policy);
> --

Applied as 6.9 material, thanks!
  

Patch

diff --git a/drivers/powercap/dtpm_cpu.c b/drivers/powercap/dtpm_cpu.c
index 9193c3b8edeb..ae7ee611978b 100644
--- a/drivers/powercap/dtpm_cpu.c
+++ b/drivers/powercap/dtpm_cpu.c
@@ -219,7 +219,7 @@  static int __dtpm_cpu_setup(int cpu, struct dtpm *parent)
 	ret = freq_qos_add_request(&policy->constraints,
 				   &dtpm_cpu->qos_req, FREQ_QOS_MAX,
 				   pd->table[pd->nr_perf_states - 1].frequency);
-	if (ret)
+	if (ret < 0)
 		goto out_dtpm_unregister;
 
 	cpufreq_cpu_put(policy);