Commit fa3eb71d authored by Dave Martin's avatar Dave Martin Committed by Will Deacon

arm64: asm-bug: Renumber macro local labels to avoid clashes

Currently ASM_BUG() and its constituent macros define local
assembler labels 0, 1 and 2 internally, which carries a high risk
of clash with callers' labels and consequent mis-assembly.

This patch gives the labels a big random offset to minimise the
chance of such errors.
Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
parent 6436beee
...@@ -22,10 +22,10 @@ ...@@ -22,10 +22,10 @@
#define _BUGVERBOSE_LOCATION(file, line) __BUGVERBOSE_LOCATION(file, line) #define _BUGVERBOSE_LOCATION(file, line) __BUGVERBOSE_LOCATION(file, line)
#define __BUGVERBOSE_LOCATION(file, line) \ #define __BUGVERBOSE_LOCATION(file, line) \
.pushsection .rodata.str,"aMS",@progbits,1; \ .pushsection .rodata.str,"aMS",@progbits,1; \
2: .string file; \ 14472: .string file; \
.popsection; \ .popsection; \
\ \
.long 2b - 0b; \ .long 14472b - 14470b; \
.short line; .short line;
#else #else
#define _BUGVERBOSE_LOCATION(file, line) #define _BUGVERBOSE_LOCATION(file, line)
...@@ -36,11 +36,11 @@ ...@@ -36,11 +36,11 @@
#define __BUG_ENTRY(flags) \ #define __BUG_ENTRY(flags) \
.pushsection __bug_table,"aw"; \ .pushsection __bug_table,"aw"; \
.align 2; \ .align 2; \
0: .long 1f - 0b; \ 14470: .long 14471f - 14470b; \
_BUGVERBOSE_LOCATION(__FILE__, __LINE__) \ _BUGVERBOSE_LOCATION(__FILE__, __LINE__) \
.short flags; \ .short flags; \
.popsection; \ .popsection; \
1: 14471:
#else #else
#define __BUG_ENTRY(flags) #define __BUG_ENTRY(flags)
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment