powerpc: Fix power4/970 idle code regression with lockdep
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 15 Mar 2012 22:26:59 +0000 (09:26 +1100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 15 Mar 2012 22:28:17 +0000 (09:28 +1100)
in commit 7230c5644188cd9e3fb380cc97dde00c464a3ba7
"powerpc: Rework lazy-interrupt handling"

I introduced a regression, accidentally calling irq tracing twice
and not properly restoring a clobbered register (r7) later used
for writing to the MSR.

This caused lockups when booting on a G5 with lockdep enabled.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/idle_power4.S

index d8cdba4c28b25a7f2c6988414e12e2b3cae7aac0..2c71b0fc9f9101361475e8baaea3136a84753c45 100644 (file)
@@ -50,9 +50,9 @@ END_FTR_SECTION_IFCLR(CPU_FTR_CAN_NAP)
        addi    r1,r1,128
        ld      r0,16(r1)
        mtlr    r0
+       mfmsr   r7
 #endif /* CONFIG_TRACE_IRQFLAGS */
 
-       TRACE_ENABLE_INTS
        li      r0,1
        stb     r0,PACASOFTIRQEN(r13)   /* we'll hard-enable shortly */
 BEGIN_FTR_SECTION