rk30: cpufreq: prevent deadlock by disable call get_online_cpus

The deadlock happens when:
rk30_cpufreq_temp_limit_work_func:
 cpufreq_driver_target
  lock_policy_rwsem_write
  mutex_lock(&cpufreq_mutex)

cpufreq_interactive_up_task:
 mutex_lock(&cpufreq_mutex)
 mutex_lock(&cpu_hotplug.lock)

_cpu_down:
 mutex_lock(&cpu_hotplug.lock)
 lock_policy_rwsem_write
This commit is contained in:
黄涛
2012-07-12 09:31:21 +08:00
parent 9100f92c1f
commit 8215d8fbbf

View File

@@ -548,7 +548,6 @@ int cpufreq_scale_rate_for_dvfs(struct clk *clk, unsigned long rate, dvfs_set_ra
freqs.new = rate / 1000;
freqs.old = rk30_getspeed(0);
get_online_cpus();
for_each_online_cpu(freqs.cpu) {
cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
}
@@ -571,7 +570,6 @@ int cpufreq_scale_rate_for_dvfs(struct clk *clk, unsigned long rate, dvfs_set_ra
for_each_online_cpu(freqs.cpu) {
cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
}
put_online_cpus();
return ret;
}