diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-12-30 09:57:11 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-12-31 15:48:43 -0500 |
commit | cad30467963267509d5b0d7d3c9bd1af3b91e720 (patch) | |
tree | 1401116f7b9bce68c4d4c1140b4648c5dcd1919f | |
parent | aa439248ab71bcd2d26a01708dead4dd56616499 (diff) |
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 <rafael.j.wysocki@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
-rw-r--r-- | drivers/cpufreq/intel_pstate.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c index dc457abb7dab..f8e514d7fbc4 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) | |||
2103 | if (per_cpu_limits) | 2103 | if (per_cpu_limits) |
2104 | perf_limits = cpu->perf_limits; | 2104 | perf_limits = cpu->perf_limits; |
2105 | 2105 | ||
2106 | mutex_lock(&intel_pstate_limits_lock); | ||
2107 | |||
2106 | intel_pstate_update_perf_limits(policy, perf_limits); | 2108 | intel_pstate_update_perf_limits(policy, perf_limits); |
2107 | 2109 | ||
2110 | mutex_unlock(&intel_pstate_limits_lock); | ||
2111 | |||
2108 | return 0; | 2112 | return 0; |
2109 | } | 2113 | } |
2110 | 2114 | ||