aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/scall32-o32.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/scall32-o32.S')
-rw-r--r--arch/mips/kernel/scall32-o32.S18
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
2521: SAVE_STATIC
253 move a0, sp
254 li a1, 1
255 jal do_syscall_trace
256 j syscall_exit
257 247
258no_mem: li v0, -ENOMEM 248no_mem: li v0, -ENOMEM
259 jr ra 249 jr ra