lkml.org 
[lkml]   [2020]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2 20/20] cpufreq: Return zero on success in boost sw setting
    From
    Date
    On 5/6/2020 7:42 PM, Sergey.Semin@baikalelectronics.ru wrote:
    > From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
    >
    > Recent commit e61a41256edf ("cpufreq: dev_pm_qos_update_request() can
    > return 1 on success") fixed a problem when active policies traverse
    > was falsely stopped due to invalidly treating the non-zero return value
    > from freq_qos_update_request() method as an error. Yes, that function
    > can return positive values if the requested update actually took place.
    > The current problem is that the returned value is then passed to the
    > return cell of the cpufreq_boost_set_sw() (set_boost callback) method.
    > This value is then also analyzed for being non-zero, which is also
    > treated as having an error. As a result during the boost activation
    > we'll get an error returned while having the QOS frequency update
    > successfully performed. Fix this by returning a negative value from the
    > cpufreq_boost_set_sw() if actual error was encountered and zero
    > otherwise treating any positive values as the successful operations
    > completion.
    >
    > Fixes: 18c49926c4bf ("cpufreq: Add QoS requests for userspace constraints")
    > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
    > Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
    > Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
    > Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    > Cc: Paul Burton <paulburton@kernel.org>
    > Cc: Ralf Baechle <ralf@linux-mips.org>
    > Cc: Arnd Bergmann <arnd@arndb.de>
    > Cc: Rob Herring <robh+dt@kernel.org>
    > Cc: linux-mips@vger.kernel.org
    > Cc: devicetree@vger.kernel.org
    > Cc: stable@vger.kernel.org
    > ---
    > drivers/cpufreq/cpufreq.c | 2 +-
    > 1 file changed, 1 insertion(+), 1 deletion(-)
    >
    > diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
    > index 045f9fe157ce..5870cdca88cf 100644
    > --- a/drivers/cpufreq/cpufreq.c
    > +++ b/drivers/cpufreq/cpufreq.c
    > @@ -2554,7 +2554,7 @@ static int cpufreq_boost_set_sw(int state)
    > break;
    > }
    >
    > - return ret;
    > + return ret < 0 ? ret : 0;
    > }
    >
    > int cpufreq_boost_trigger_state(int state)

    IMO it is better to update the caller of this function to handle the
    positive value possibly returned by it correctly.

    Thanks!


    \
     
     \ /
      Last update: 2020-05-15 17:59    [W:4.055 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site