|
@@ -119,8 +119,9 @@ void gov_queue_work(struct dbs_data *dbs_data, struct cpufreq_policy *policy,
|
|
{
|
|
{
|
|
int i;
|
|
int i;
|
|
|
|
|
|
|
|
+ mutex_lock(&cpufreq_governor_lock);
|
|
if (!policy->governor_enabled)
|
|
if (!policy->governor_enabled)
|
|
- return;
|
|
|
|
|
|
+ goto out_unlock;
|
|
|
|
|
|
if (!all_cpus) {
|
|
if (!all_cpus) {
|
|
/*
|
|
/*
|
|
@@ -135,6 +136,9 @@ void gov_queue_work(struct dbs_data *dbs_data, struct cpufreq_policy *policy,
|
|
for_each_cpu(i, policy->cpus)
|
|
for_each_cpu(i, policy->cpus)
|
|
__gov_queue_work(i, dbs_data, delay);
|
|
__gov_queue_work(i, dbs_data, delay);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+out_unlock:
|
|
|
|
+ mutex_unlock(&cpufreq_governor_lock);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(gov_queue_work);
|
|
EXPORT_SYMBOL_GPL(gov_queue_work);
|
|
|
|
|