[PATCH v3 0/1] ARM: signal: sigreturn_codes should be endian neutral to work in BE8
Victor Kamensky
victor.kamensky at linaro.org
Wed Aug 28 01:41:56 EDT 2013
This is third version of patch that fixes rt_sig* ltp failures
in case of big endian V7 kernel. It make sigreturn_codes snippets
endian neutral. In this version of the patch problem is fixed by
using separate .S file with snippets written with regular asm
mnemonic. With such change compiler/linker take care of all needed
byteswaps in case of BE8 mode.
This approach was suggested on the following thread:
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-August/191543.html
Changes were tested on V7 in both BE and LE modes
Changes from v2:
Incorporated Dave's comments that he gave on
http://lists.infradead.org/pipermail/linux-arm-kernel/2013-August/191879.html
Added comment that explains why sigreturn_codes size is 7 words
Note I could not implemented defensive snippet, that Dave suggested, in
asm that asserts sigreturn_codes size in asm wrt one that declared in
C file. The issue is in gas handling movs instruction, please see above
thread for details. So we should rely on comment in the code to make
sure that code maintained correctly further. Note it was not functional
piece anyway. I think it is OK to omit it.
Changes from v1:
Use separate .S file rather than <asm/opcodes.h> instruction
byteswaping macros
Victor Kamensky (1):
ARM: signal: sigreturn_codes should be endian neutral to work in BE8
arch/arm/kernel/Makefile | 3 +-
arch/arm/kernel/signal.c | 24 +-------------
arch/arm/kernel/sigreturn_codes.S | 69 +++++++++++++++++++++++++++++++++++++++
3 files changed, 72 insertions(+), 24 deletions(-)
create mode 100644 arch/arm/kernel/sigreturn_codes.S
--
1.8.1.4
More information about the linux-arm-kernel
mailing list