Loading arch/um/include/asm/ptrace-generic.h +1 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ extern int putreg(struct task_struct *child, int regno, unsigned long value); extern int arch_copy_tls(struct task_struct *new); extern void clear_flushed_tls(struct task_struct *task); extern void syscall_trace_enter(struct pt_regs *regs); extern int syscall_trace_enter(struct pt_regs *regs); extern void syscall_trace_leave(struct pt_regs *regs); #endif Loading arch/um/kernel/ptrace.c +3 −3 Original line number Diff line number Diff line Loading @@ -131,7 +131,7 @@ static void send_sigtrap(struct task_struct *tsk, struct uml_pt_regs *regs, * XXX Check PT_DTRACE vs TIF_SINGLESTEP for singlestepping check and * PT_PTRACED vs TIF_SYSCALL_TRACE for syscall tracing check */ void syscall_trace_enter(struct pt_regs *regs) int syscall_trace_enter(struct pt_regs *regs) { audit_syscall_entry(UPT_SYSCALL_NR(®s->regs), UPT_SYSCALL_ARG1(®s->regs), Loading @@ -140,9 +140,9 @@ void syscall_trace_enter(struct pt_regs *regs) UPT_SYSCALL_ARG4(®s->regs)); if (!test_thread_flag(TIF_SYSCALL_TRACE)) return; return 0; tracehook_report_syscall_entry(regs); return tracehook_report_syscall_entry(regs); } void syscall_trace_leave(struct pt_regs *regs) Loading arch/um/kernel/skas/syscall.c +5 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,10 @@ void handle_syscall(struct uml_pt_regs *r) long result; int syscall; syscall_trace_enter(regs); if (syscall_trace_enter(regs)) { result = -ENOSYS; goto out; } /* * This should go in the declaration of syscall, but when I do that, Loading @@ -34,6 +37,7 @@ void handle_syscall(struct uml_pt_regs *r) result = -ENOSYS; else result = EXECUTE_SYSCALL(syscall, regs); out: PT_REGS_SET_SYSCALL_RETURN(regs, result); syscall_trace_leave(regs); Loading Loading
arch/um/include/asm/ptrace-generic.h +1 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ extern int putreg(struct task_struct *child, int regno, unsigned long value); extern int arch_copy_tls(struct task_struct *new); extern void clear_flushed_tls(struct task_struct *task); extern void syscall_trace_enter(struct pt_regs *regs); extern int syscall_trace_enter(struct pt_regs *regs); extern void syscall_trace_leave(struct pt_regs *regs); #endif Loading
arch/um/kernel/ptrace.c +3 −3 Original line number Diff line number Diff line Loading @@ -131,7 +131,7 @@ static void send_sigtrap(struct task_struct *tsk, struct uml_pt_regs *regs, * XXX Check PT_DTRACE vs TIF_SINGLESTEP for singlestepping check and * PT_PTRACED vs TIF_SYSCALL_TRACE for syscall tracing check */ void syscall_trace_enter(struct pt_regs *regs) int syscall_trace_enter(struct pt_regs *regs) { audit_syscall_entry(UPT_SYSCALL_NR(®s->regs), UPT_SYSCALL_ARG1(®s->regs), Loading @@ -140,9 +140,9 @@ void syscall_trace_enter(struct pt_regs *regs) UPT_SYSCALL_ARG4(®s->regs)); if (!test_thread_flag(TIF_SYSCALL_TRACE)) return; return 0; tracehook_report_syscall_entry(regs); return tracehook_report_syscall_entry(regs); } void syscall_trace_leave(struct pt_regs *regs) Loading
arch/um/kernel/skas/syscall.c +5 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,10 @@ void handle_syscall(struct uml_pt_regs *r) long result; int syscall; syscall_trace_enter(regs); if (syscall_trace_enter(regs)) { result = -ENOSYS; goto out; } /* * This should go in the declaration of syscall, but when I do that, Loading @@ -34,6 +37,7 @@ void handle_syscall(struct uml_pt_regs *r) result = -ENOSYS; else result = EXECUTE_SYSCALL(syscall, regs); out: PT_REGS_SET_SYSCALL_RETURN(regs, result); syscall_trace_leave(regs); Loading