Loading arch/arm64/include/asm/ptrace.h +0 −8 Original line number Diff line number Diff line Loading @@ -72,14 +72,6 @@ #define COMPAT_PT_TEXT_ADDR 0x10000 #define COMPAT_PT_DATA_ADDR 0x10004 #define COMPAT_PT_TEXT_END_ADDR 0x10008 /* * used to skip a system call when tracer changes its number to -1 * with ptrace(PTRACE_SET_SYSCALL) */ #define RET_SKIP_SYSCALL -1 #define IS_SKIP_SYSCALL(no) ((int)(no & 0xffffffff) == -1) #ifndef __ASSEMBLY__ /* sizeof(struct user) for AArch32 */ Loading arch/arm64/kernel/entry.S +0 −4 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ #include <asm/asm-offsets.h> #include <asm/errno.h> #include <asm/esr.h> #include <asm/ptrace.h> #include <asm/thread_info.h> #include <asm/unistd.h> Loading Loading @@ -672,8 +671,6 @@ __sys_trace: mov x0, sp bl syscall_trace_enter adr lr, __sys_trace_return // return address cmp w0, #RET_SKIP_SYSCALL // skip syscall? b.eq __sys_trace_return_skipped uxtw scno, w0 // syscall number (possibly new) mov x1, sp // pointer to regs cmp scno, sc_nr // check upper syscall limit Loading @@ -687,7 +684,6 @@ __sys_trace: __sys_trace_return: str x0, [sp] // save returned x0 __sys_trace_return_skipped: // x0 already in regs[0] mov x0, sp bl syscall_trace_exit b ret_to_user Loading arch/arm64/kernel/ptrace.c +0 −20 Original line number Diff line number Diff line Loading @@ -1126,32 +1126,12 @@ static void tracehook_report_syscall(struct pt_regs *regs, asmlinkage int syscall_trace_enter(struct pt_regs *regs) { unsigned int saved_syscallno = regs->syscallno; if (test_thread_flag(TIF_SYSCALL_TRACE)) tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER); if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) trace_sys_enter(regs, regs->syscallno); if (IS_SKIP_SYSCALL(regs->syscallno)) { /* * RESTRICTION: we can't modify a return value of user * issued syscall(-1) here. In order to ease this flavor, * we need to treat whatever value in x0 as a return value, * but this might result in a bogus value being returned. */ /* * NOTE: syscallno may also be set to -1 if fatal signal is * detected in tracehook_report_syscall_entry(), but since * a value set to x0 here is not used in this case, we may * neglect the case. */ if (!test_thread_flag(TIF_SYSCALL_TRACE) || (IS_SKIP_SYSCALL(saved_syscallno))) regs->regs[0] = -ENOSYS; } audit_syscall_entry(regs->syscallno, regs->orig_x0, regs->regs[1], regs->regs[2], regs->regs[3]); Loading Loading
arch/arm64/include/asm/ptrace.h +0 −8 Original line number Diff line number Diff line Loading @@ -72,14 +72,6 @@ #define COMPAT_PT_TEXT_ADDR 0x10000 #define COMPAT_PT_DATA_ADDR 0x10004 #define COMPAT_PT_TEXT_END_ADDR 0x10008 /* * used to skip a system call when tracer changes its number to -1 * with ptrace(PTRACE_SET_SYSCALL) */ #define RET_SKIP_SYSCALL -1 #define IS_SKIP_SYSCALL(no) ((int)(no & 0xffffffff) == -1) #ifndef __ASSEMBLY__ /* sizeof(struct user) for AArch32 */ Loading
arch/arm64/kernel/entry.S +0 −4 Original line number Diff line number Diff line Loading @@ -25,7 +25,6 @@ #include <asm/asm-offsets.h> #include <asm/errno.h> #include <asm/esr.h> #include <asm/ptrace.h> #include <asm/thread_info.h> #include <asm/unistd.h> Loading Loading @@ -672,8 +671,6 @@ __sys_trace: mov x0, sp bl syscall_trace_enter adr lr, __sys_trace_return // return address cmp w0, #RET_SKIP_SYSCALL // skip syscall? b.eq __sys_trace_return_skipped uxtw scno, w0 // syscall number (possibly new) mov x1, sp // pointer to regs cmp scno, sc_nr // check upper syscall limit Loading @@ -687,7 +684,6 @@ __sys_trace: __sys_trace_return: str x0, [sp] // save returned x0 __sys_trace_return_skipped: // x0 already in regs[0] mov x0, sp bl syscall_trace_exit b ret_to_user Loading
arch/arm64/kernel/ptrace.c +0 −20 Original line number Diff line number Diff line Loading @@ -1126,32 +1126,12 @@ static void tracehook_report_syscall(struct pt_regs *regs, asmlinkage int syscall_trace_enter(struct pt_regs *regs) { unsigned int saved_syscallno = regs->syscallno; if (test_thread_flag(TIF_SYSCALL_TRACE)) tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER); if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) trace_sys_enter(regs, regs->syscallno); if (IS_SKIP_SYSCALL(regs->syscallno)) { /* * RESTRICTION: we can't modify a return value of user * issued syscall(-1) here. In order to ease this flavor, * we need to treat whatever value in x0 as a return value, * but this might result in a bogus value being returned. */ /* * NOTE: syscallno may also be set to -1 if fatal signal is * detected in tracehook_report_syscall_entry(), but since * a value set to x0 here is not used in this case, we may * neglect the case. */ if (!test_thread_flag(TIF_SYSCALL_TRACE) || (IS_SKIP_SYSCALL(saved_syscallno))) regs->regs[0] = -ENOSYS; } audit_syscall_entry(regs->syscallno, regs->orig_x0, regs->regs[1], regs->regs[2], regs->regs[3]); Loading