[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