From fb478b6a0a6e7a7e0265cf74316729c97a46bd7a Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 18 Sep 2014 20:43:28 +0200 Subject: remove gcc workaround, issue is fixed in the kernel --- target/linux/patches/3.16.2/sparc-memset.patch | 50 ++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 target/linux/patches/3.16.2/sparc-memset.patch (limited to 'target/linux') diff --git a/target/linux/patches/3.16.2/sparc-memset.patch b/target/linux/patches/3.16.2/sparc-memset.patch new file mode 100644 index 000000000..022c87b3a --- /dev/null +++ b/target/linux/patches/3.16.2/sparc-memset.patch @@ -0,0 +1,50 @@ +This makes memset follow the standard (instead of returning 0 on success). This +is needed when certain versions of gcc optimizes around memset calls and assume +that the address argument is preserved in %o0. + +Signed-off-by: Andreas Larsson + +diff -Nur linux-3.16.2.orig/arch/sparc/lib/memset.S linux-3.16.2/arch/sparc/lib/memset.S +--- linux-3.16.2.orig/arch/sparc/lib/memset.S 2014-09-06 01:37:11.000000000 +0200 ++++ linux-3.16.2/arch/sparc/lib/memset.S 2014-09-18 09:53:49.563047773 +0200 +@@ -65,6 +65,8 @@ + .globl __memset_start, __memset_end + __memset_start: + memset: ++ mov %o0, %g1 ++ mov 1, %g4 + and %o1, 0xff, %g3 + sll %g3, 8, %g2 + or %g3, %g2, %g3 +@@ -89,6 +91,7 @@ + sub %o0, %o2, %o0 + + __bzero: ++ clr %g4 + mov %g0, %g3 + 1: + cmp %o1, 7 +@@ -151,8 +154,8 @@ + bne,a 8f + EX(stb %g3, [%o0], and %o1, 1) + 8: +- retl +- clr %o0 ++ b 0f ++ nop + 7: + be 13b + orcc %o1, 0, %g0 +@@ -164,6 +167,12 @@ + bne 8b + EX(stb %g3, [%o0 - 1], add %o1, 1) + 0: ++ andcc %g4, 1, %g0 ++ be 5f ++ nop ++ retl ++ mov %g1, %o0 ++5: + retl + clr %o0 + __memset_end: -- cgit v1.2.3