This patch is from Nathan Lynch <[EMAIL PROTECTED]>.

Seeing this very occasionally during cpu hotplug testing:

 Badness in slb_flush_and_rebolt at arch/ppc64/mm/slb.c:52
 Call Trace:
 [c0000000ef0efbe0] [c0000000000127a0] .__switch_to+0xa4/0xf0 (unreliable)
 [c0000000ef0efc80] [c000000000050178] .idle_task_exit+0xbc/0x15c
 [c0000000ef0efd10] [c00000000000d108] .cpu_die+0x18/0x68
 [c0000000ef0efd90] [c00000000001023c] .dedicated_idle+0x1fc/0x254
 [c0000000ef0efe80] [c00000000000fc80] .cpu_idle+0x3c/0x54
 [c0000000ef0eff00] [c00000000003aa90] .start_secondary+0x108/0x148
 [c0000000ef0eff90] [c00000000000bd28] .enable_64b_mode+0x0/0x28

idle_task_exit can result in a call to slb_flush_and_rebolt, which
must not be called with interrupts enabled.  Make the call with
interrupts disabled.


Signed-off-by: Nathan Lynch <[EMAIL PROTECTED]>
Signed-off-by: Paul Mackerras <[EMAIL PROTECTED]>

 pSeries_setup.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.11-bk2/arch/ppc64/kernel/pSeries_setup.c
===================================================================
--- linux-2.6.11-bk2.orig/arch/ppc64/kernel/pSeries_setup.c     2005-03-07 
04:09:29.000000000 +0000
+++ linux-2.6.11-bk2/arch/ppc64/kernel/pSeries_setup.c  2005-03-07 
04:15:22.000000000 +0000
@@ -322,8 +322,8 @@ static  void __init pSeries_discover_pic
 
 static void pSeries_mach_cpu_die(void)
 {
-       idle_task_exit();
        local_irq_disable();
+       idle_task_exit();
        /* Some hardware requires clearing the CPPR, while other hardware does 
not
         * it is safe either way
         */
-
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