[PATCH 2/3] cpufreq: intel_pstate: Use locking in intel_cpufreq_verify_policy()

From: Rafael J. Wysocki
Date: Fri Dec 30 2016 - 10:03:19 EST


From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

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 <rafael.j.wysocki@xxxxxxxxx>
---
drivers/cpufreq/intel_pstate.c | 4 ++++
1 file changed, 4 insertions(+)

Index: linux-pm/drivers/cpufreq/intel_pstate.c
===================================================================
--- linux-pm.orig/drivers/cpufreq/intel_pstate.c
+++ linux-pm/drivers/cpufreq/intel_pstate.c
@@ -2157,8 +2157,12 @@ static int intel_cpufreq_verify_policy(s
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;
}