
From: Thomas Gleixner <tglx@linutronix.de>

The idle-thread-preemption-fix.patch in mm1/2 leads to a stalled box on PPC
machines which do not provide a powersave function and therefor poll the
idle loop with interrupts disabled.  The patch reenables interrupts.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/ppc/kernel/idle.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff -puN arch/ppc/kernel/idle.c~ppc-fix-idle-with-interrupts-disabled arch/ppc/kernel/idle.c
--- 25/arch/ppc/kernel/idle.c~ppc-fix-idle-with-interrupts-disabled	2005-01-09 23:59:36.793749192 -0800
+++ 25-akpm/arch/ppc/kernel/idle.c	2005-01-09 23:59:36.796748736 -0800
@@ -41,14 +41,17 @@ void default_idle(void)
 	if (!need_resched()) {
 		if (powersave != NULL)
 			powersave();
-#ifdef CONFIG_SMP
 		else {
+#ifdef CONFIG_SMP
 			set_thread_flag(TIF_POLLING_NRFLAG);
+			local_irq_enable();
 			while (!need_resched())
 				barrier();
 			clear_thread_flag(TIF_POLLING_NRFLAG);
-		}
+#else
+			local_irq_enable();
 #endif
+		}
 	}
 	if (need_resched())
 		schedule();
_
