ARM: idle: call idle notifiers before stopping nohz tick
authorColin Cross <ccross@android.com>
Wed, 30 Nov 2011 00:37:07 +0000 (16:37 -0800)
committerColin Cross <ccross@android.com>
Wed, 30 Nov 2011 02:00:09 +0000 (18:00 -0800)
If an idle notifier modifies a timer, calling the notifier after
the sched tick has been stopped may leave the sched tick set too
early.  Move teh idle notifier call before the call to
tick_nohz_stop_sched_tick.

Change-Id: I0db3284bec6d0193bc5e2a57650ab06bd8342319
Signed-off-by: Colin Cross <ccross@android.com>
arch/arm/kernel/process.c

index 54c97eee617345ce46d64a60c46c4e06b341cf53..7d66a6e66cb6c4d09dd4666c3522b7f4adb69a5c 100644 (file)
@@ -223,8 +223,8 @@ void cpu_idle(void)
 
        /* endless idle loop with no priority at all */
        while (1) {
-               tick_nohz_stop_sched_tick(1);
                idle_notifier_call_chain(IDLE_START);
+               tick_nohz_stop_sched_tick(1);
                while (!need_resched()) {
 #ifdef CONFIG_HOTPLUG_CPU
                        if (cpu_is_offline(smp_processor_id()))