diff options
author | Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> | 2015-10-07 16:50:44 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-10-08 15:47:56 -0400 |
commit | 55582bccdc1e89ecc973c260d46e247df675d4df (patch) | |
tree | b176a4ab379606a9fb13165c24596be55e035d3b | |
parent | e25303676e18a7947185a34e26dd08cf0c0ea573 (diff) |
cpufreq: prevent lockup on reading scaling_available_frequencies
When scaling_available_frequencies is read on an offlined cpu, then
either lockup or junk values are displayed. This is caused by
freed freq_table, which policy is using.
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index ef5ed9470de9..25c4c15103a0 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
@@ -1436,8 +1436,10 @@ static void cpufreq_offline_finish(unsigned int cpu) | |||
1436 | * since this is a core component, and is essential for the | 1436 | * since this is a core component, and is essential for the |
1437 | * subsequent light-weight ->init() to succeed. | 1437 | * subsequent light-weight ->init() to succeed. |
1438 | */ | 1438 | */ |
1439 | if (cpufreq_driver->exit) | 1439 | if (cpufreq_driver->exit) { |
1440 | cpufreq_driver->exit(policy); | 1440 | cpufreq_driver->exit(policy); |
1441 | policy->freq_table = NULL; | ||
1442 | } | ||
1441 | } | 1443 | } |
1442 | 1444 | ||
1443 | /** | 1445 | /** |