[PATCH][PPC64] Fix memset

From: Paul Mackerras
Date: Tue Jun 29 2004 - 03:37:31 EST


This patch fixes a bug in the ppc64 memset where the code that gets
the destination address aligned (or is supposed to) was looking at the
bottom 3 bits of the count rather than the destination address. The
result of this was that the kernel wouldn't boot on POWER3 machines.
The patch also removes an unnecessary duplicate instruction.

Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>

diff -urN linux-2.5/arch/ppc64/lib/string.S ppc64-2.5-pseries/arch/ppc64/lib/string.S
--- linux-2.5/arch/ppc64/lib/string.S 2004-06-25 07:03:03.000000000 +1000
+++ ppc64-2.5-pseries/arch/ppc64/lib/string.S 2004-06-29 16:26:13.000000000 +1000
@@ -66,13 +66,12 @@
blr

_GLOBAL(memset)
- neg r0,r5
+ neg r0,r3
rlwimi r4,r4,8,16,23
andi. r0,r0,7 /* # bytes to be 8-byte aligned */
rlwimi r4,r4,16,0,15
cmplw cr1,r5,r0 /* do we get that far? */
rldimi r4,r4,32,0
- mr r6,r3
mtcrf 1,r0
mr r6,r3
blt cr1,8f
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/