diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/kernel/irixsig.c | 3 | ||||
-rw-r--r-- | arch/mips/kernel/signal.c | 4 | ||||
-rw-r--r-- | arch/mips64/kernel/signal.c | 4 | ||||
-rw-r--r-- | arch/mips64/kernel/signal32.c | 4 |
4 files changed, 15 insertions, 0 deletions
diff --git a/arch/mips/kernel/irixsig.c b/arch/mips/kernel/irixsig.c index 1bcafdf75..331c59105 100644 --- a/arch/mips/kernel/irixsig.c +++ b/arch/mips/kernel/irixsig.c @@ -19,6 +19,7 @@ asmlinkage int sys_wait4(pid_t pid, unsigned long *stat_addr, int options, unsigned long *ru); +extern asmlinkage void syscall_trace(void); #undef DEBUG_SIG @@ -354,6 +355,8 @@ irix_sigreturn(struct pt_regs *regs) /* * Don't let your children do this ... */ + if (current->flags & PF_TRACESYS) + syscall_trace(); __asm__ __volatile__( "move\t$29,%0\n\t" "j\tret_from_sys_call" diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index a912be2e1..81ff3173d 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c @@ -37,6 +37,8 @@ extern asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs); extern asmlinkage int save_fp_context(struct sigcontext *sc); extern asmlinkage int restore_fp_context(struct sigcontext *sc); +extern asmlinkage void syscall_trace(void); + /* * Atomically swap in the new signal mask, and wait for a signal. */ @@ -230,6 +232,8 @@ sys_sigreturn(struct pt_regs regs) /* * Don't let your children do this ... */ + if (current->flags & PF_TRACESYS) + syscall_trace(); __asm__ __volatile__( "move\t$29, %0\n\t" "j\tret_from_sys_call" diff --git a/arch/mips64/kernel/signal.c b/arch/mips64/kernel/signal.c index e2b83596c..9fad47ffe 100644 --- a/arch/mips64/kernel/signal.c +++ b/arch/mips64/kernel/signal.c @@ -38,6 +38,8 @@ extern asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs); extern asmlinkage int save_fp_context(struct sigcontext *sc); extern asmlinkage int restore_fp_context(struct sigcontext *sc); +extern asmlinkage void syscall_trace(void); + static inline int store_fp_context(struct sigcontext *sc) { unsigned int fcr0; @@ -257,6 +259,8 @@ sys_sigreturn(abi64_no_regargs, struct pt_regs regs) /* * Don't let your children do this ... */ + if (current->flags & PF_TRACESYS) + syscall_trace(); __asm__ __volatile__( "move\t$29, %0\n\t" "j\tret_from_sys_call" diff --git a/arch/mips64/kernel/signal32.c b/arch/mips64/kernel/signal32.c index 7d4ce3050..f96676b00 100644 --- a/arch/mips64/kernel/signal32.c +++ b/arch/mips64/kernel/signal32.c @@ -38,6 +38,8 @@ extern asmlinkage int do_signal32(sigset_t *oldset, struct pt_regs *regs); extern asmlinkage int save_fp_context(struct sigcontext *sc); extern asmlinkage int restore_fp_context(struct sigcontext *sc); +extern asmlinkage void syscall_trace(void); + /* 32-bit compatibility types */ #define _NSIG32_BPW 32 @@ -376,6 +378,8 @@ printk("%s called.\n", __FUNCTION__); /* * Don't let your children do this ... */ + if (current->flags & PF_TRACESYS) + syscall_trace(); __asm__ __volatile__( "move\t$29, %0\n\t" "j\tret_from_sys_call" |