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

Message ID 1260333945.16132.9.camel@pasglop
State Accepted, archived
Commit e090aa80321b64c3b793f3b047e31ecf1af9538d
Headers show

Commit Message

Benjamin Herrenschmidt Dec. 9, 2009, 4:45 a.m.
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@kernel.crashing.org>
CC: <stable@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