ARM: 7670/1: fix the memset fix
authorNicolas Pitre <nicolas.pitre@linaro.org>
Tue, 12 Mar 2013 12:00:42 +0000 (13:00 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 6 Aug 2014 17:07:42 +0000 (18:07 +0100)
commit2c58922a118fd60866a28ef23dca495f225e9369
treedab0c75117694bdc216c80c43d4d71815f1afb4d
parentfe7b4c337f38e0755da2c19e8c4eb4123b1155da
ARM: 7670/1: fix the memset fix

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 <nico@linaro.org>
Tested-by: Alexander Holler <holler@ahsoftware.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
arch/arm/lib/memset.S