Charlie,

As you can see, we managed to get ourselves some extra attention
with git cc'ing the authors and sign-offs on the patch.

Can you double check your send settings and make sure that suppress-cc
is in use ?

Also, as I mentioned in my followup, I already have up to v3.4.88
merged, and this has been in since v3.4.70.

So make sure your tree is up to date, and resend this series once
it is sorted out.

Bruce

On 2014-05-01, 11:29 AM, Charlie Paul wrote:
From: Nicolas Pitre <nicolas.pi...@linaro.org>

commit 418df63adac56841ef6b0f1fcf435bc64d4ed177 upstream.

Commit 455bd4c430b0 ("ARM: 7668/1: fix memset-related crashes caused by
recent GCC (4.7.2) optimizations") attempted to fix a compliance issue
with the memset return value.  However the memset itself became broken
by that patch for misaligned pointers.

This fixes the above by branching over the entry code from the
misaligned fixup code to avoid reloading the original pointer.

Also, because the function entry alignment is wrong in the Thumb mode
compilation, that fixup code is moved to the end.

While at it, the entry instructions are slightly reworked to help dual
issue pipelines.

Signed-off-by: Nicolas Pitre <n...@linaro.org>
Tested-by: Alexander Holler <hol...@ahsoftware.de>
Signed-off-by: Russell King <rmk+ker...@arm.linux.org.uk>
Cc: Eric BĂ©nard <e...@eukrea.com>
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
  arch/arm/lib/memset.S |   22 +++-------------------
  1 file changed, 3 insertions(+), 19 deletions(-)

diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S
index 1039023..94b0650 100644
--- a/arch/arm/lib/memset.S
+++ b/arch/arm/lib/memset.S
@@ -14,27 +14,11 @@

        .text
        .align  5
-       .word   0
-
-1:     subs    r2, r2, #4              @ 1 do we have enough
-       blt     5f                      @ 1 bytes to align with?
-       cmp     r3, #2                  @ 1
-       strltb  r1, [ip], #1            @ 1
-       strleb  r1, [ip], #1            @ 1
-       strb    r1, [ip], #1            @ 1
-       add     r2, r2, r3              @ 1 (r2 = r2 - (4 - r3))
-/*
- * The pointer is now aligned and the length is adjusted.  Try doing the
- * memset again.
- */

  ENTRY(memset)
-/*
- * Preserve the contents of r0 for the return value.
- */
-       mov     ip, r0
-       ands    r3, ip, #3              @ 1 unaligned?
-       bne     1b                      @ 1
+       ands    r3, r0, #3              @ 1 unaligned?
+       mov     ip, r0                  @ preserve r0 as return value
+       bne     6f                      @ 1
  /*
   * we know that the pointer in ip is aligned to a word boundary.
   */


--
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to