Re: [PATCH 1/2] cpufreq: don't allow governor limits to be changed when it is disabled

From: Rafael J. Wysocki
Date: Sun Sep 01 2013 - 09:15:24 EST


On Sunday, September 01, 2013 10:56:01 AM Viresh Kumar wrote:
> __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().
>
> Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> ---
> Hi Rafael,
>
> Its better if we can get these in for 3.11, otherwise we need to get them in the
> stable tree..

There's no way they could go into 3.11 or even 3.12 without speding time
in linux-next. I'll queue them up for the second part of the 3.12 merge
window, unless there is 3.11-rc8 (which I doubt will happen).

> Anyway, we will get these in 3.10 stable tree but that requires us to identify
> few more patches that will go with these. I will do that later.
>
> This must fix the issues reported by Stephen.
>
> Tested on my thinkpad over your linux-next branch.
>
> drivers/cpufreq/cpufreq.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index 5c75e31..f320a20 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -1692,8 +1692,9 @@ static int __cpufreq_governor(struct cpufreq_policy *policy,
> policy->cpu, event);
>
> mutex_lock(&cpufreq_governor_lock);
> - if ((!policy->governor_enabled && (event == CPUFREQ_GOV_STOP)) ||
> - (policy->governor_enabled && (event == CPUFREQ_GOV_START))) {
> + if ((policy->governor_enabled && (event == CPUFREQ_GOV_START)) ||
> + (!policy->governor_enabled && ((event == CPUFREQ_GOV_LIMITS) ||
> + (event == CPUFREQ_GOV_STOP)))) {

Broken white space, but never mind.

> mutex_unlock(&cpufreq_governor_lock);
> return -EBUSY;
> }

Thanks,
Rafael

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/