aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/entry-armv.S
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-06-26 11:01:26 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-07-02 05:56:11 -0400
commitda7404725781bc7c736e10cae5521e5604e222a5 (patch)
treee816cd79e1b09ddcbd41b7cd5b3c6c9c9bd5eb98 /arch/arm/kernel/entry-armv.S
parent0d147db0c127c561f8f9ead9f3c1ec38f89f1040 (diff)
ARM: entry: data abort: tail-call the main data abort handler
Tail-call the main C data abort handler code from the per-CPU helper code. Update the comments in the code wrt the new calling and return register state. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
-rw-r--r--arch/arm/kernel/entry-armv.S14
1 files changed, 4 insertions, 10 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 85298c09325..bbdd443b805 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -60,6 +60,7 @@
60 @ 60 @
61 @ Call the processor-specific abort handler: 61 @ Call the processor-specific abort handler:
62 @ 62 @
63 @ r2 - pt_regs
63 @ r4 - aborted context pc 64 @ r4 - aborted context pc
64 @ r5 - aborted context psr 65 @ r5 - aborted context psr
65 @ 66 @
@@ -186,13 +187,8 @@ ENDPROC(__und_invalid)
186 .align 5 187 .align 5
187__dabt_svc: 188__dabt_svc:
188 svc_entry 189 svc_entry
189 dabt_helper
190
191 @
192 @ call main handler
193 @
194 mov r2, sp 190 mov r2, sp
195 bl do_DataAbort 191 dabt_helper
196 192
197 @ 193 @
198 @ IRQs off again before pulling preserved data off the stack 194 @ IRQs off again before pulling preserved data off the stack
@@ -407,11 +403,9 @@ ENDPROC(__pabt_svc)
407__dabt_usr: 403__dabt_usr:
408 usr_entry 404 usr_entry
409 kuser_cmpxchg_check 405 kuser_cmpxchg_check
410 dabt_helper
411
412 mov r2, sp 406 mov r2, sp
413 adr lr, BSYM(ret_from_exception) 407 dabt_helper
414 b do_DataAbort 408 b ret_from_exception
415 UNWIND(.fnend ) 409 UNWIND(.fnend )
416ENDPROC(__dabt_usr) 410ENDPROC(__dabt_usr)
417 411