diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c index 45a41eb7c4f073..e96d577671338c 100644 --- a/drivers/cpufreq/cpufreq_interactive.c +++ b/drivers/cpufreq/cpufreq_interactive.c @@ -445,7 +445,7 @@ static void cpufreq_interactive_timer(unsigned long data) continue; max_load = max(max_load, picpu->prev_load); - max_freq = max(max_freq, picpu->policy->cur); + max_freq = max(max_freq, picpu->target_freq); } if (max_freq > up_threshold_any_cpu_freq && @@ -1283,6 +1283,7 @@ static int cpufreq_governor_interactive(struct cpufreq_policy *policy, pcpu = &per_cpu(cpuinfo, j); down_write(&pcpu->enable_sem); pcpu->governor_enabled = 0; + pcpu->target_freq = 0; del_timer_sync(&pcpu->cpu_timer); del_timer_sync(&pcpu->cpu_slack_timer); up_write(&pcpu->enable_sem);