cpufreq: powernv: del_timer_sync when global and local pstate are equal
authorAkshay Adiga <akshay.adiga@linux.vnet.ibm.com>
Tue, 3 May 2016 15:19:36 +0000 (20:49 +0530)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 11 May 2016 00:28:00 +0000 (02:28 +0200)
When global and local pstate are equal in a powernv_target_index() call,
we don't queue a timer. But we may have timer already queued for future.
This could cause the timer to fire one additional time for no use.

Signed-off-by: Akshay Adiga <akshay.adiga@linux.vnet.ibm.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/powernv-cpufreq.c

index 1f0e20ccc2ff43ae1100e8f6ba1d7253bbf4d69a..54c45368e3f17d3333a124cbb378ccf0fefee9fe 100644 (file)
@@ -647,6 +647,8 @@ static int powernv_cpufreq_target_index(struct cpufreq_policy *policy,
         */
        if (gpstate_id != freq_data.pstate_id)
                queue_gpstate_timer(gpstates);
+       else
+               del_timer_sync(&gpstates->timer);
 
 gpstates_done:
        freq_data.gpstate_id = gpstate_id;