diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-04-19 05:15:03 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-04-21 03:45:21 -0400 |
| commit | 4260415f6a3b92c5c986398d96c314df37a4ccbf (patch) | |
| tree | 13db8d997677c70d7b3f880daafab41d0b6711f3 /arch/arm/include/asm/assembler.h | |
| parent | 05ce7bfe547c9fa967d9cab6c37867a9cb6fb3fa (diff) | |
ARM: fix build error in arch/arm/kernel/process.c
/tmp/ccJ3ssZW.s: Assembler messages:
/tmp/ccJ3ssZW.s:1952: Error: can't resolve `.text' {.text section} - `.LFB1077'
This is caused because:
.section .data
.section .text
.section .text
.previous
does not return us to the .text section, but the .data section; this
makes use of .previous dangerous if the ordering of previous sections
is not known.
Fix up the other users of .previous; .pushsection and .popsection are
a safer pairing to use than .section and .previous.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/include/asm/assembler.h')
| -rw-r--r-- | arch/arm/include/asm/assembler.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index 00f46d9ce299..6e8f05c8a1c8 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h | |||
| @@ -149,10 +149,10 @@ | |||
| 149 | 149 | ||
| 150 | #define USER(x...) \ | 150 | #define USER(x...) \ |
| 151 | 9999: x; \ | 151 | 9999: x; \ |
| 152 | .section __ex_table,"a"; \ | 152 | .pushsection __ex_table,"a"; \ |
| 153 | .align 3; \ | 153 | .align 3; \ |
| 154 | .long 9999b,9001f; \ | 154 | .long 9999b,9001f; \ |
| 155 | .previous | 155 | .popsection |
| 156 | 156 | ||
| 157 | /* | 157 | /* |
| 158 | * SMP data memory barrier | 158 | * SMP data memory barrier |
| @@ -193,10 +193,10 @@ | |||
| 193 | .error "Unsupported inc macro argument" | 193 | .error "Unsupported inc macro argument" |
| 194 | .endif | 194 | .endif |
| 195 | 195 | ||
| 196 | .section __ex_table,"a" | 196 | .pushsection __ex_table,"a" |
| 197 | .align 3 | 197 | .align 3 |
| 198 | .long 9999b, \abort | 198 | .long 9999b, \abort |
| 199 | .previous | 199 | .popsection |
| 200 | .endm | 200 | .endm |
| 201 | 201 | ||
| 202 | .macro usracc, instr, reg, ptr, inc, cond, rept, abort | 202 | .macro usracc, instr, reg, ptr, inc, cond, rept, abort |
| @@ -234,10 +234,10 @@ | |||
| 234 | .error "Unsupported inc macro argument" | 234 | .error "Unsupported inc macro argument" |
| 235 | .endif | 235 | .endif |
| 236 | 236 | ||
| 237 | .section __ex_table,"a" | 237 | .pushsection __ex_table,"a" |
| 238 | .align 3 | 238 | .align 3 |
| 239 | .long 9999b, \abort | 239 | .long 9999b, \abort |
| 240 | .previous | 240 | .popsection |
| 241 | .endr | 241 | .endr |
| 242 | .endm | 242 | .endm |
| 243 | 243 | ||
