|
@@ -1401,9 +1401,17 @@ unsigned int cpufreq_quick_get(unsigned int cpu)
|
|
|
{
|
|
|
struct cpufreq_policy *policy;
|
|
|
unsigned int ret_freq = 0;
|
|
|
+ unsigned long flags;
|
|
|
|
|
|
- if (cpufreq_driver && cpufreq_driver->setpolicy && cpufreq_driver->get)
|
|
|
- return cpufreq_driver->get(cpu);
|
|
|
+ read_lock_irqsave(&cpufreq_driver_lock, flags);
|
|
|
+
|
|
|
+ if (cpufreq_driver && cpufreq_driver->setpolicy && cpufreq_driver->get) {
|
|
|
+ ret_freq = cpufreq_driver->get(cpu);
|
|
|
+ read_unlock_irqrestore(&cpufreq_driver_lock, flags);
|
|
|
+ return ret_freq;
|
|
|
+ }
|
|
|
+
|
|
|
+ read_unlock_irqrestore(&cpufreq_driver_lock, flags);
|
|
|
|
|
|
policy = cpufreq_cpu_get(cpu);
|
|
|
if (policy) {
|