|
@@ -633,6 +633,8 @@ static int cpufreq_parse_governor(char *str_governor,
|
|
|
|
|
|
t = find_governor(str_governor);
|
|
t = find_governor(str_governor);
|
|
}
|
|
}
|
|
|
|
+ if (t && !try_module_get(t->owner))
|
|
|
|
+ t = NULL;
|
|
|
|
|
|
mutex_unlock(&cpufreq_governor_mutex);
|
|
mutex_unlock(&cpufreq_governor_mutex);
|
|
|
|
|
|
@@ -766,6 +768,10 @@ static ssize_t store_scaling_governor(struct cpufreq_policy *policy,
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
|
|
|
|
ret = cpufreq_set_policy(policy, &new_policy);
|
|
ret = cpufreq_set_policy(policy, &new_policy);
|
|
|
|
+
|
|
|
|
+ if (new_policy.governor)
|
|
|
|
+ module_put(new_policy.governor->owner);
|
|
|
|
+
|
|
return ret ? ret : count;
|
|
return ret ? ret : count;
|
|
}
|
|
}
|
|
|
|
|