Re: [PATCH] thermal/drivers/cpufreq_cooling: Fix return of cpufreq_set_cur_state

From: Amit Kucheria
Date: Mon Mar 23 2020 - 17:05:25 EST


Hi Willy,

On Sat, Mar 21, 2020 at 2:57 PM Willy Wolff <willy.mh.wolff.ml@xxxxxxxxx> wrote:
>
> The function freq_qos_update_request returns 0 or 1 describing update
> effectiveness, and a negative error code on failure. However,
> cpufreq_set_cur_state returns 0 on success or an error code otherwise.
>

Please improve the commit message with context from your earlier bug
report thread and a summary of how the problem shows up.

Thanks,
Amit



> Signed-off-by: Willy Wolff <willy.mh.wolff.ml@xxxxxxxxx>
> ---
> drivers/thermal/cpufreq_cooling.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/thermal/cpufreq_cooling.c b/drivers/thermal/cpufreq_cooling.c
> index fe83d7a210d4..af55ac08e1bd 100644
> --- a/drivers/thermal/cpufreq_cooling.c
> +++ b/drivers/thermal/cpufreq_cooling.c
> @@ -431,6 +431,7 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev,
> unsigned long state)
> {
> struct cpufreq_cooling_device *cpufreq_cdev = cdev->devdata;
> + int ret;
>
> /* Request state should be less than max_level */
> if (WARN_ON(state > cpufreq_cdev->max_level))
> @@ -442,8 +443,9 @@ static int cpufreq_set_cur_state(struct thermal_cooling_device *cdev,
>
> cpufreq_cdev->cpufreq_state = state;
>
> - return freq_qos_update_request(&cpufreq_cdev->qos_req,
> - get_state_freq(cpufreq_cdev, state));
> + ret = freq_qos_update_request(&cpufreq_cdev->qos_req,
> + get_state_freq(cpufreq_cdev, state));
> + return ret < 0 ? ret : 0;
> }
>
> /* Bind cpufreq callbacks to thermal cooling device ops */
> --
> 2.20.1
>