diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2013-08-31 08:23:40 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-09-09 20:49:45 -0400 |
commit | f73d39338444d9915c746403bd98b145ff9d2ba4 (patch) | |
tree | 6a3717b14ce4b40fe92809d5e29516ec3a3ccba8 /drivers/cpufreq/cpufreq.c | |
parent | 6932078376e2c1fd49b6c4aa41cc5e162ee83d8a (diff) |
cpufreq: don't allow governor limits to be changed when it is disabled
__cpufreq_governor() returns with -EBUSY when governor is already
stopped and we try to stop it again, but when it is stopped we must
not allow calls to CPUFREQ_GOV_LIMITS event as well.
This patch adds this check in __cpufreq_governor().
Reported-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/cpufreq/cpufreq.c')
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 5c75e3147a60..06a2496d2075 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
@@ -1692,8 +1692,9 @@ static int __cpufreq_governor(struct cpufreq_policy *policy, | |||
1692 | policy->cpu, event); | 1692 | policy->cpu, event); |
1693 | 1693 | ||
1694 | mutex_lock(&cpufreq_governor_lock); | 1694 | mutex_lock(&cpufreq_governor_lock); |
1695 | if ((!policy->governor_enabled && (event == CPUFREQ_GOV_STOP)) || | 1695 | if ((policy->governor_enabled && event == CPUFREQ_GOV_START) |
1696 | (policy->governor_enabled && (event == CPUFREQ_GOV_START))) { | 1696 | || (!policy->governor_enabled |
1697 | && (event == CPUFREQ_GOV_LIMITS || event == CPUFREQ_GOV_STOP))) { | ||
1697 | mutex_unlock(&cpufreq_governor_lock); | 1698 | mutex_unlock(&cpufreq_governor_lock); |
1698 | return -EBUSY; | 1699 | return -EBUSY; |
1699 | } | 1700 | } |