powerpc: Fix usage of 64-bit instruction in 32-bit altivec code

Benjamin Herrenschmidt benh at kernel.crashing.org
Wed Dec 9 15:45:45 EST 2009

e821ea70f3b4873b50056a1e0f74befed1014c09 introduced a bug by copying
some 64-bit originated code as-is to be used by both 32 and 64-bit
but this code contains a 64-bit ony "cmpdi" instruction.

This changes it to cmpwi, which is fine since VRSAVE can only contains
a 32-bit value anyway.

Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
CC: <stable at kernel.org>

I'm adding that to -next now so it goes into stable shortly after
I push to Linus, hopefully tomorrow

Index: linux-work/arch/powerpc/kernel/vector.S
--- linux-work.orig/arch/powerpc/kernel/vector.S	2009-12-09 15:39:55.000000000 +1100
+++ linux-work/arch/powerpc/kernel/vector.S	2009-12-09 15:39:58.000000000 +1100
@@ -58,7 +58,7 @@ _GLOBAL(load_up_altivec)
 	 * all 1's
 	mfspr	r4,SPRN_VRSAVE
-	cmpdi	0,r4,0
+	cmpwi	0,r4,0
 	bne+	1f
 	li	r4,-1
 	mtspr	SPRN_VRSAVE,r4

More information about the Linuxppc-dev mailing list