Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 137148
b: refs/heads/master
c: c4c5716
h: refs/heads/master
v: v3
  • Loading branch information
Catalin Marinas authored and Russell King committed Feb 19, 2009
1 parent 0be9d8d commit b33cf43
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2e1926e7b5d39eb31880152d636e8d8d011888cb
refs/heads/master: c4c5716e16c4ee971dec446a7e4801fbb8a1066b
19 changes: 19 additions & 0 deletions trunk/arch/arm/kernel/entry-armv.S
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <asm/vfpmacros.h>
#include <mach/entry-macro.S>
#include <asm/thread_notify.h>
#include <asm/unwind.h>

#include "entry-header.S"

Expand Down Expand Up @@ -123,6 +124,8 @@ ENDPROC(__und_invalid)
#endif

.macro svc_entry, stack_hole=0
UNWIND(.fnstart )
UNWIND(.save {r0 - pc} )
sub sp, sp, #(S_FRAME_SIZE + \stack_hole)
SPFIX( tst sp, #4 )
SPFIX( bicne sp, sp, #4 )
Expand Down Expand Up @@ -196,6 +199,7 @@ __dabt_svc:
ldr r0, [sp, #S_PSR]
msr spsr_cxsf, r0
ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr
UNWIND(.fnend )
ENDPROC(__dabt_svc)

.align 5
Expand Down Expand Up @@ -228,6 +232,7 @@ __irq_svc:
bleq trace_hardirqs_on
#endif
ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr
UNWIND(.fnend )
ENDPROC(__irq_svc)

.ltorg
Expand Down Expand Up @@ -278,6 +283,7 @@ __und_svc:
ldr lr, [sp, #S_PSR] @ Get SVC cpsr
msr spsr_cxsf, lr
ldmia sp, {r0 - pc}^ @ Restore SVC registers
UNWIND(.fnend )
ENDPROC(__und_svc)

.align 5
Expand Down Expand Up @@ -320,6 +326,7 @@ __pabt_svc:
ldr r0, [sp, #S_PSR]
msr spsr_cxsf, r0
ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr
UNWIND(.fnend )
ENDPROC(__pabt_svc)

.align 5
Expand All @@ -343,6 +350,8 @@ ENDPROC(__pabt_svc)
#endif

.macro usr_entry
UNWIND(.fnstart )
UNWIND(.cantunwind ) @ don't unwind the user space
sub sp, sp, #S_FRAME_SIZE
stmib sp, {r1 - r12}

Expand Down Expand Up @@ -420,6 +429,7 @@ __dabt_usr:
mov r2, sp
adr lr, ret_from_exception
b do_DataAbort
UNWIND(.fnend )
ENDPROC(__dabt_usr)

.align 5
Expand Down Expand Up @@ -450,6 +460,7 @@ __irq_usr:

mov why, #0
b ret_to_user
UNWIND(.fnend )
ENDPROC(__irq_usr)

.ltorg
Expand Down Expand Up @@ -484,6 +495,7 @@ __und_usr:
#else
b __und_usr_unknown
#endif
UNWIND(.fnend )
ENDPROC(__und_usr)

@
Expand Down Expand Up @@ -671,14 +683,18 @@ __pabt_usr:
enable_irq @ Enable interrupts
mov r1, sp @ regs
bl do_PrefetchAbort @ call abort handler
UNWIND(.fnend )
/* fall through */
/*
* This is the return code to user mode for abort handlers
*/
ENTRY(ret_from_exception)
UNWIND(.fnstart )
UNWIND(.cantunwind )
get_thread_info tsk
mov why, #0
b ret_to_user
UNWIND(.fnend )
ENDPROC(__pabt_usr)
ENDPROC(ret_from_exception)

Expand All @@ -688,6 +704,8 @@ ENDPROC(ret_from_exception)
* previous and next are guaranteed not to be the same.
*/
ENTRY(__switch_to)
UNWIND(.fnstart )
UNWIND(.cantunwind )
add ip, r1, #TI_CPU_SAVE
ldr r3, [r2, #TI_TP_VALUE]
stmia ip!, {r4 - sl, fp, sp, lr} @ Store most regs on stack
Expand Down Expand Up @@ -717,6 +735,7 @@ ENTRY(__switch_to)
bl atomic_notifier_call_chain
mov r0, r5
ldmia r4, {r4 - sl, fp, sp, pc} @ Load all regs saved previously
UNWIND(.fnend )
ENDPROC(__switch_to)

__INIT
Expand Down
4 changes: 4 additions & 0 deletions trunk/arch/arm/kernel/entry-common.S
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <asm/unistd.h>
#include <asm/ftrace.h>
#include <mach/entry-macro.S>
#include <asm/unwind.h>

#include "entry-header.S"

Expand All @@ -22,6 +23,8 @@
* stack.
*/
ret_fast_syscall:
UNWIND(.fnstart )
UNWIND(.cantunwind )
disable_irq @ disable interrupts
ldr r1, [tsk, #TI_FLAGS]
tst r1, #_TIF_WORK_MASK
Expand All @@ -38,6 +41,7 @@ ret_fast_syscall:
mov r0, r0
add sp, sp, #S_FRAME_SIZE - S_PC
movs pc, lr @ return & move spsr_svc into cpsr
UNWIND(.fnend )

/*
* Ok, we need to do extra processing, enter the slow path.
Expand Down

0 comments on commit b33cf43

Please sign in to comment.