Commit 38df92b8cee936334f686c06df0e5fbb92e252df

Authored by Linus Torvalds

Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kern…

…el/git/tip/linux-2.6-tip

* 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  NOHZ: Properly feed cpufreq ondemand governor

Showing 1 changed file Side-by-side Diff

kernel/time/tick-sched.c
... ... @@ -222,6 +222,15 @@
222 222  
223 223 cpu = smp_processor_id();
224 224 ts = &per_cpu(tick_cpu_sched, cpu);
  225 +
  226 + /*
  227 + * Call to tick_nohz_start_idle stops the last_update_time from being
  228 + * updated. Thus, it must not be called in the event we are called from
  229 + * irq_exit() with the prior state different than idle.
  230 + */
  231 + if (!inidle && !ts->inidle)
  232 + goto end;
  233 +
225 234 now = tick_nohz_start_idle(ts);
226 235  
227 236 /*
... ... @@ -237,9 +246,6 @@
237 246 }
238 247  
239 248 if (unlikely(ts->nohz_mode == NOHZ_MODE_INACTIVE))
240   - goto end;
241   -
242   - if (!inidle && !ts->inidle)
243 249 goto end;
244 250  
245 251 ts->inidle = 1;