Add a need_resched_delayed() check.
This was pointed by Sergei Shtylyov; 
  http://ozlabs.org/pipermail/linuxppc-dev/2007-March/033148.html

Signed-off-by: Tsutomu Owa <[EMAIL PROTECTED]>
-- owa

diff -rup linux-2.6.21-rt1/arch/powerpc/kernel/idle.c 
rt/arch/powerpc/kernel/idle.c
--- linux-2.6.21-rt1/arch/powerpc/kernel/idle.c 2007-05-07 14:08:12.000000000 
+0900
+++ rt/arch/powerpc/kernel/idle.c       2007-05-07 14:05:30.000000000 +0900
@@ -70,7 +70,9 @@ void cpu_idle(void)
                                local_irq_disable();
 
                                /* check again after disabling irqs */
-                               if (!need_resched() && !cpu_should_die())
+                               if (!need_resched() &&
+                                   !need_resched_delayed() &&
+                                   !cpu_should_die())
                                        ppc_md.power_save();
 
                                local_irq_enable();


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

Reply via email to