From: Rafael J. Wysocki Date: Fri, 30 Dec 2016 14:57:11 +0000 (+0100) Subject: cpufreq: intel_pstate: Use locking in intel_cpufreq_verify_policy() X-Git-Tag: v4.14-rc1~1641^2^3~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cad30467963267509d5b0d7d3c9bd1af3b91e720;p=platform%2Fkernel%2Flinux-rpi3.git cpufreq: intel_pstate: Use locking in intel_cpufreq_verify_policy() Race conditions are possible if intel_cpufreq_verify_policy() is executed in parallel with global limits updates from sysfs, so the invocation of intel_pstate_update_perf_limits() in it should be carried out under intel_pstate_limits_lock. Make that happen. Signed-off-by: Rafael J. Wysocki Acked-by: Srinivas Pandruvada --- diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c index dc457ab..f8e514d 100644 --- a/drivers/cpufreq/intel_pstate.c +++ b/drivers/cpufreq/intel_pstate.c @@ -2103,8 +2103,12 @@ static int intel_cpufreq_verify_policy(struct cpufreq_policy *policy) if (per_cpu_limits) perf_limits = cpu->perf_limits; + mutex_lock(&intel_pstate_limits_lock); + intel_pstate_update_perf_limits(policy, perf_limits); + mutex_unlock(&intel_pstate_limits_lock); + return 0; }