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

login
register
mail settings
Submitter Benjamin Herrenschmidt
Date Dec. 9, 2009, 4:45 a.m.
Message ID <1260333945.16132.9.camel@pasglop>
Download mbox | patch
Permalink /patch/40701/
State Accepted
Commit e090aa80321b64c3b793f3b047e31ecf1af9538d
Headers show

Comments

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

Patch

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