aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/cpufreq.c
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2013-08-31 08:23:40 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-09-09 20:49:45 -0400
commitf73d39338444d9915c746403bd98b145ff9d2ba4 (patch)
tree6a3717b14ce4b40fe92809d5e29516ec3a3ccba8 /drivers/cpufreq/cpufreq.c
parent6932078376e2c1fd49b6c4aa41cc5e162ee83d8a (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.c5
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 }