[PATCH] PPC64: Fix recent regression

Olof Johansson olof at lixom.net
Thu Sep 15 14:02:56 EST 2005


Hi,

Please consider for 2.6.14, it broke between 2.6.13 and 2.6.14-rc1:


A recent patch changed the way the LPAR bit is checked during early
boot. This resulted in a polarity change in a conditional branch without
changing the branch, causing at least some legacy machines to not boot.


Signed-off-by: Olof Johansson <olof at lixom.net>

Index: 2.6/arch/ppc64/kernel/head.S
===================================================================
--- 2.6.orig/arch/ppc64/kernel/head.S	2005-09-14 22:01:44.000000000 -0500
+++ 2.6/arch/ppc64/kernel/head.S	2005-09-14 22:46:05.000000000 -0500
@@ -1813,7 +1813,7 @@ _STATIC(start_here_multiplatform)
 	ld	r3,0(r3)
 	lwz	r3,PLATFORM(r3)		/* r3 = platform flags */
 	andi.	r3,r3,PLATFORM_LPAR	/* Test if bit 0 is set (LPAR bit) */
-	bne	98f
+	beq	98f			/* eq=1 if result is 0 */
 	mfspr	r3,PVR
 	srwi	r3,r3,16
 	cmpwi	r3,0x37			/* SStar */
@@ -1834,7 +1834,7 @@ _STATIC(start_here_multiplatform)
 	lwz	r3,PLATFORM(r3)		/* r3 = platform flags */
 	/* Test if bit 0 is set (LPAR bit) */
 	andi.	r3,r3,PLATFORM_LPAR
-	bne	98f
+	bne	98f			/* eq=1 if result is 0 */
 	LOADADDR(r6,_SDR1)		/* Only if NOT LPAR */
 	sub	r6,r6,r26
 	ld	r6,0(r6)		/* get the value of _SDR1 */



More information about the Linuxppc64-dev mailing list