diff options
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 859f56cb122b..2f5555d307b3 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -372,6 +372,9 @@ ENDPROC(__fiq_abt) | |||
372 | ARM( stmib sp, {r1 - r12} ) | 372 | ARM( stmib sp, {r1 - r12} ) |
373 | THUMB( stmia sp, {r0 - r12} ) | 373 | THUMB( stmia sp, {r0 - r12} ) |
374 | 374 | ||
375 | ATRAP( mrc p15, 0, r7, c1, c0, 0) | ||
376 | ATRAP( ldr r8, .LCcralign) | ||
377 | |||
375 | ldmia r0, {r3 - r5} | 378 | ldmia r0, {r3 - r5} |
376 | add r0, sp, #S_PC @ here for interlock avoidance | 379 | add r0, sp, #S_PC @ here for interlock avoidance |
377 | mov r6, #-1 @ "" "" "" "" | 380 | mov r6, #-1 @ "" "" "" "" |
@@ -379,6 +382,8 @@ ENDPROC(__fiq_abt) | |||
379 | str r3, [sp] @ save the "real" r0 copied | 382 | str r3, [sp] @ save the "real" r0 copied |
380 | @ from the exception stack | 383 | @ from the exception stack |
381 | 384 | ||
385 | ATRAP( ldr r8, [r8, #0]) | ||
386 | |||
382 | @ | 387 | @ |
383 | @ We are now ready to fill in the remaining blanks on the stack: | 388 | @ We are now ready to fill in the remaining blanks on the stack: |
384 | @ | 389 | @ |
@@ -392,10 +397,9 @@ ENDPROC(__fiq_abt) | |||
392 | ARM( stmdb r0, {sp, lr}^ ) | 397 | ARM( stmdb r0, {sp, lr}^ ) |
393 | THUMB( store_user_sp_lr r0, r1, S_SP - S_PC ) | 398 | THUMB( store_user_sp_lr r0, r1, S_SP - S_PC ) |
394 | 399 | ||
395 | @ | ||
396 | @ Enable the alignment trap while in kernel mode | 400 | @ Enable the alignment trap while in kernel mode |
397 | @ | 401 | ATRAP( teq r8, r7) |
398 | alignment_trap r0, .LCcralign | 402 | ATRAP( mcrne p15, 0, r8, c1, c0, 0) |
399 | 403 | ||
400 | @ | 404 | @ |
401 | @ Clear FP to mark the first stack frame | 405 | @ Clear FP to mark the first stack frame |