summaryrefslogtreecommitdiffstats
path: root/arch/arm/include
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2015-04-09 12:59:35 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2015-04-14 22:26:51 +0100
commit89c6bc5884e52ec004f03071f268ba3f27003aba (patch)
tree57a9a8f938fa1a986c794d07729408acf2af8dc3 /arch/arm/include
parent38e42f121601fc0640c032871a38efa5a59cff68 (diff)
downloadlinux-89c6bc5884e52ec004f03071f268ba3f27003aba.tar.gz
linux-89c6bc5884e52ec004f03071f268ba3f27003aba.tar.bz2
linux-89c6bc5884e52ec004f03071f268ba3f27003aba.zip
ARM: allow 16-bit instructions in ALT_UP()
Allow ALT_UP() to cope with a 16-bit Thumb instruction by automatically inserting a following nop instruction. This allows us to care less about getting the assembler to emit a 32-bit thumb instruction. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/include')
-rw-r--r--arch/arm/include/asm/assembler.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
index f67fd3afebdf..186270b3e194 100644
--- a/arch/arm/include/asm/assembler.h
+++ b/arch/arm/include/asm/assembler.h
@@ -237,6 +237,9 @@
.pushsection ".alt.smp.init", "a" ;\
.long 9998b ;\
9997: instr ;\
+ .if . - 9997b == 2 ;\
+ nop ;\
+ .endif ;\
.if . - 9997b != 4 ;\
.error "ALT_UP() content must assemble to exactly 4 bytes";\
.endif ;\