diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-12-01 18:52:58 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-12-01 18:52:58 -0500 |
| commit | b67c26e4fcfdade157d5bd54085720e71518cccd (patch) | |
| tree | cbfcbf209abc06fc28b6c77a130985e7212879c5 /arch/mips/kernel/scall32-o32.S | |
| parent | c6b79418a4bb0260a92a25f562047d5be7b0e7f4 (diff) | |
| parent | 80b42598eec1627084e225c575201bdd838f5b8f (diff) | |
Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Diffstat (limited to 'arch/mips/kernel/scall32-o32.S')
| -rw-r--r-- | arch/mips/kernel/scall32-o32.S | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index 4dd8e8b4fbc2..a42e0e8caa7b 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
| @@ -94,11 +94,13 @@ syscall_trace_entry: | |||
| 94 | li a1, 0 | 94 | li a1, 0 |
| 95 | jal do_syscall_trace | 95 | jal do_syscall_trace |
| 96 | 96 | ||
| 97 | move t0, s0 | ||
| 98 | RESTORE_STATIC | ||
| 97 | lw a0, PT_R4(sp) # Restore argument registers | 99 | lw a0, PT_R4(sp) # Restore argument registers |
| 98 | lw a1, PT_R5(sp) | 100 | lw a1, PT_R5(sp) |
| 99 | lw a2, PT_R6(sp) | 101 | lw a2, PT_R6(sp) |
| 100 | lw a3, PT_R7(sp) | 102 | lw a3, PT_R7(sp) |
| 101 | jalr s0 | 103 | jalr t0 |
| 102 | 104 | ||
| 103 | li t0, -EMAXERRNO - 1 # error? | 105 | li t0, -EMAXERRNO - 1 # error? |
| 104 | sltu t0, t0, v0 | 106 | sltu t0, t0, v0 |
| @@ -241,19 +243,7 @@ illegal_syscall: | |||
| 241 | sw zero, PT_R7(sp) # success | 243 | sw zero, PT_R7(sp) # success |
| 242 | sw v0, PT_R2(sp) # result | 244 | sw v0, PT_R2(sp) # result |
| 243 | 245 | ||
| 244 | /* Success, so skip usual error handling garbage. */ | 246 | j o32_syscall_exit # continue like a normal syscall |
| 245 | lw a2, TI_FLAGS($28) # syscall tracing enabled? | ||
| 246 | li t0, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | ||
| 247 | and t0, a2, t0 | ||
| 248 | bnez t0, 1f | ||
| 249 | |||
| 250 | j o32_syscall_exit | ||
| 251 | |||
| 252 | 1: SAVE_STATIC | ||
| 253 | move a0, sp | ||
| 254 | li a1, 1 | ||
| 255 | jal do_syscall_trace | ||
| 256 | j syscall_exit | ||
| 257 | 247 | ||
| 258 | no_mem: li v0, -ENOMEM | 248 | no_mem: li v0, -ENOMEM |
| 259 | jr ra | 249 | jr ra |
