cpufreq: Avoid calling cpufreq_verify_current_freq() from handle_update()
authorViresh Kumar <viresh.kumar@linaro.org>
Thu, 20 Jun 2019 03:05:50 +0000 (08:35 +0530)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 28 Jun 2019 09:24:56 +0000 (11:24 +0200)
commit70a59fde6e69d1d8579f84bf4555bfffb3ce452d
tree53863dd8106c2f2a564da43055a3e1154da2895f
parent5980752e6ef7079c0839576df10f8062d8a48883
cpufreq: Avoid calling cpufreq_verify_current_freq() from handle_update()

On some occasions cpufreq_verify_current_freq() schedules a work whose
callback is handle_update(), which further calls cpufreq_update_policy()
which may end up calling cpufreq_verify_current_freq() again.

On the other hand, when cpufreq_update_policy() is called from
handle_update(), the pointer to the cpufreq policy is already
available, but cpufreq_cpu_acquire() is still called to get it in
cpufreq_update_policy(), which should be avoided as well.

To fix these issues, create a new helper, refresh_frequency_limits(),
and make both handle_update() call it cpufreq_update_policy().

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
[ rjw: Rename reeval_frequency_limits() as refresh_frequency_limits() ]
[ rjw: Changelog ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/cpufreq/cpufreq.c