ARM: signal: sigreturn_codes should be endian neutral to work in BE8
authorVictor Kamensky <victor.kamensky@linaro.org>
Wed, 28 Aug 2013 05:41:57 +0000 (22:41 -0700)
committerVictor Kamensky <victor.kamensky@linaro.org>
Thu, 13 Mar 2014 21:49:45 +0000 (14:49 -0700)
commit43fb56589e8a57efc166673dae4da94bfca32f08
treeb7ecea99fdbb4aedd6a262d121c47051832a859d
parentd66e226e5f9197e89511c6ddae2394ee53cb5d02
ARM: signal: sigreturn_codes should be endian neutral to work in BE8

In case of BE8 kernel data is in BE order whereas code stays in LE
order. Move sigreturn_codes to separate .S file and use proper
assembler mnemonics for these code snippets. In this case compiler
will take care of proper instructions byteswaps for BE8 case.
Change assumes that sufficiently Thumb-capable tools are used to
build kernel.

Problem was discovered during ltp testing of BE system: all rt_sig*
tests failed. Tested against the same tests in both BE and LE modes.

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
Reviewed-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
(cherry picked from commit 574e2b5111e13827da501771b27d92e6e3f2e3d7)

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
Conflicts:
arch/arm/kernel/Makefile
arch/arm/kernel/Makefile
arch/arm/kernel/signal.c
arch/arm/kernel/sigreturn_codes.S [new file with mode: 0644]