diff options
author | David S. Miller <davem@davemloft.net> | 2005-07-10 19:55:48 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-07-10 19:55:48 -0400 |
commit | 8d8a64796fdee4e20355c6c12c9cc630a2e7494d (patch) | |
tree | dc0d548a520bdad1e2aa7752153bf7c787fc04bd /arch/sparc64/solaris | |
parent | bb49bcda15f1bc1a52c7f887db278447f332eaa7 (diff) |
[SPARC64]: Pass regs and entry/exit boolean to syscall_trace()
Also fix a bug in 32-bit syscall tracing. We forgot to update
this code when we moved over to the convention that all 32-bit
syscall arguments are zero extended by default.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/solaris')
-rw-r--r-- | arch/sparc64/solaris/entry64.S | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/sparc64/solaris/entry64.S b/arch/sparc64/solaris/entry64.S index 0cc9dad75c5e..4b6ae583c0a3 100644 --- a/arch/sparc64/solaris/entry64.S +++ b/arch/sparc64/solaris/entry64.S | |||
@@ -24,8 +24,9 @@ | |||
24 | 24 | ||
25 | .text | 25 | .text |
26 | solaris_syscall_trace: | 26 | solaris_syscall_trace: |
27 | add %sp, PTREGS_OFF, %o0 | ||
27 | call syscall_trace | 28 | call syscall_trace |
28 | nop | 29 | mov 0, %o1 |
29 | srl %i0, 0, %o0 | 30 | srl %i0, 0, %o0 |
30 | mov %i4, %o4 | 31 | mov %i4, %o4 |
31 | srl %i1, 0, %o1 | 32 | srl %i1, 0, %o1 |
@@ -159,8 +160,10 @@ ret_from_solaris: | |||
159 | stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC] !npc = npc+4 | 160 | stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC] !npc = npc+4 |
160 | 161 | ||
161 | solaris_syscall_trace2: | 162 | solaris_syscall_trace2: |
163 | add %sp, PTREGS_OFF, %o0 | ||
162 | call syscall_trace | 164 | call syscall_trace |
163 | add %l1, 0x4, %l2 /* npc = npc+4 */ | 165 | mov 1, %o1 |
166 | add %l1, 0x4, %l2 /* npc = npc+4 */ | ||
164 | andcc %l1, 1, %g0 | 167 | andcc %l1, 1, %g0 |
165 | bne,pn %icc, 2b | 168 | bne,pn %icc, 2b |
166 | nop | 169 | nop |