diff options
Diffstat (limited to 'arch/powerpc/kernel/ptrace.c')
| -rw-r--r-- | arch/powerpc/kernel/ptrace.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index a6ae1cfad86..cb22024f2b4 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c @@ -29,6 +29,7 @@  #include <linux/signal.h>  #include <linux/seccomp.h>  #include <linux/audit.h> +#include <trace/syscall.h>  #ifdef CONFIG_PPC32  #include <linux/module.h>  #endif @@ -40,6 +41,9 @@  #include <asm/pgtable.h>  #include <asm/system.h> +#define CREATE_TRACE_POINTS +#include <trace/events/syscalls.h> +  /*   * The parameter save area on the stack is used to store arguments being passed   * to callee function and is located at fixed offset from stack pointer. @@ -1710,6 +1714,9 @@ long do_syscall_trace_enter(struct pt_regs *regs)  		 */  		ret = -1L; +	if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) +		trace_sys_enter(regs, regs->gpr[0]); +  	if (unlikely(current->audit_context)) {  #ifdef CONFIG_PPC64  		if (!is_32bit_task()) @@ -1738,6 +1745,9 @@ void do_syscall_trace_leave(struct pt_regs *regs)  		audit_syscall_exit((regs->ccr&0x10000000)?AUDITSC_FAILURE:AUDITSC_SUCCESS,  				   regs->result); +	if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) +		trace_sys_exit(regs, regs->result); +  	step = test_thread_flag(TIF_SINGLESTEP);  	if (step || test_thread_flag(TIF_SYSCALL_TRACE))  		tracehook_report_syscall_exit(regs, step);  |