Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: 7088/1: entry: fix wrong parameter name used in do_thumb_abort

Commit be020f8618ca, "ARM: entry: abort-macro: specify registers to be
used for macros", while replacing register numbers with macro parameter
names, mismatched the name used for r1. For me, this resulted in user
space built for EABI with -march=armv4t -mtune=arm920t -mthumb-interwork
-mthumb broken on my OMAP1510 based Amstrad Delta (old ABI and no thumb
still worked for me though).

Fix this by using correct parameter name fsr instead of mismatched psr,
used by callers for another purpose.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Janusz Krzysztofik and committed by
Russell King
6c6d8deb bac7e6ec

+1 -1
+1 -1
arch/arm/mm/abort-macro.S
··· 17 17 cmp \tmp, # 0x5600 @ Is it ldrsb? 18 18 orreq \tmp, \tmp, #1 << 11 @ Set L-bit if yes 19 19 tst \tmp, #1 << 11 @ L = 0 -> write 20 - orreq \psr, \psr, #1 << 11 @ yes. 20 + orreq \fsr, \fsr, #1 << 11 @ yes. 21 21 b do_DataAbort 22 22 not_thumb: 23 23 .endm