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/lib/uaccess.S | |
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/lib/uaccess.S')
-rw-r--r-- | arch/arm/lib/uaccess.S | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S index ffdd27498cee..fee9f6f88adb 100644 --- a/arch/arm/lib/uaccess.S +++ b/arch/arm/lib/uaccess.S | |||
@@ -279,10 +279,10 @@ USER( strgtbt r3, [r0], #1) @ May fault | |||
279 | b .Lc2u_finished | 279 | b .Lc2u_finished |
280 | ENDPROC(__copy_to_user) | 280 | ENDPROC(__copy_to_user) |
281 | 281 | ||
282 | .section .fixup,"ax" | 282 | .pushsection .fixup,"ax" |
283 | .align 0 | 283 | .align 0 |
284 | 9001: ldmfd sp!, {r0, r4 - r7, pc} | 284 | 9001: ldmfd sp!, {r0, r4 - r7, pc} |
285 | .previous | 285 | .popsection |
286 | 286 | ||
287 | /* Prototype: unsigned long __copy_from_user(void *to,const void *from,unsigned long n); | 287 | /* Prototype: unsigned long __copy_from_user(void *to,const void *from,unsigned long n); |
288 | * Purpose : copy a block from user memory to kernel memory | 288 | * Purpose : copy a block from user memory to kernel memory |
@@ -545,7 +545,7 @@ USER( ldrgtbt r3, [r1], #1) @ May fault | |||
545 | b .Lcfu_finished | 545 | b .Lcfu_finished |
546 | ENDPROC(__copy_from_user) | 546 | ENDPROC(__copy_from_user) |
547 | 547 | ||
548 | .section .fixup,"ax" | 548 | .pushsection .fixup,"ax" |
549 | .align 0 | 549 | .align 0 |
550 | /* | 550 | /* |
551 | * We took an exception. r0 contains a pointer to | 551 | * We took an exception. r0 contains a pointer to |
@@ -559,5 +559,5 @@ ENDPROC(__copy_from_user) | |||
559 | blne __memzero | 559 | blne __memzero |
560 | mov r0, r4 | 560 | mov r0, r4 |
561 | ldmfd sp!, {r4 - r7, pc} | 561 | ldmfd sp!, {r4 - r7, pc} |
562 | .previous | 562 | .popsection |
563 | 563 | ||