Message ID | 20200321092740.7vvwfxsebcrznydh@macmini.local (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Daniel Lezcano |
Headers | show |
Series | thermal/drivers/cpufreq_cooling: Fix return of cpufreq_set_cur_state | expand |
On 21-03-20, 09:27, Willy Wolff 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. > > Signed-off-by: Willy Wolff <willy.mh.wolff.ml@gmail.com> > --- > 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 */ Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Hi Willy, On Sat, Mar 21, 2020 at 2:57 PM Willy Wolff <willy.mh.wolff.ml@gmail.com> 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@gmail.com> > --- > 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 >
On 23/03/2020 22:05, Amit Kucheria wrote: > Hi Willy, > > On Sat, Mar 21, 2020 at 2:57 PM Willy Wolff <willy.mh.wolff.ml@gmail.com> 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. I've improved the commit message when applied: https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git/commit/?h=testing&id=ff44f672d74178b3be19d41a169b98b3e391d4ce >> Signed-off-by: Willy Wolff <willy.mh.wolff.ml@gmail.com> >> --- >> 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 >>
Many thanks. On Mon, Mar 23, 2020 at 10:08:38PM +0100, Daniel Lezcano wrote: >On 23/03/2020 22:05, Amit Kucheria wrote: >> Hi Willy, >> >> On Sat, Mar 21, 2020 at 2:57 PM Willy Wolff <willy.mh.wolff.ml@gmail.com> 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. > >I've improved the commit message when applied: > >https://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux.git/commit/?h=testing&id=ff44f672d74178b3be19d41a169b98b3e391d4ce > >>> Signed-off-by: Willy Wolff <willy.mh.wolff.ml@gmail.com> >>> --- >>> 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 >>> > > >-- > <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs > >Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | ><http://twitter.com/#!/linaroorg> Twitter | ><http://www.linaro.org/linaro-blog/> Blog >
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 */
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. Signed-off-by: Willy Wolff <willy.mh.wolff.ml@gmail.com> --- drivers/thermal/cpufreq_cooling.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)