From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: Thu, 15 Mar 2012 22:26:59 +0000 (+1100)
Subject: powerpc: Fix power4/970 idle code regression with lockdep
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=01e8ec4417d3c484986af0adaa0ae6632e0a59cd;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git

powerpc: Fix power4/970 idle code regression with lockdep

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>
---

diff --git a/arch/powerpc/kernel/idle_power4.S b/arch/powerpc/kernel/idle_power4.S
index d8cdba4c28b2..2c71b0fc9f91 100644
--- a/arch/powerpc/kernel/idle_power4.S
+++ b/arch/powerpc/kernel/idle_power4.S
@@ -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