diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2021-12-20 16:29:29 -0600 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2022-01-08 12:43:58 -0600 |
commit | a403df29789ba38796edb97dad9bfb47836b68c0 (patch) | |
tree | d17357e0ebdb94abd4e954e6740fbe4a2452dc07 | |
parent | 4264178416cd52a55a3eccbefb3973866e060280 (diff) | |
download | linux-a403df29789ba38796edb97dad9bfb47836b68c0.tar.bz2 |
ptrace/m68k: Stop open coding ptrace_report_syscall
The generic function ptrace_report_syscall does a little more
than syscall_trace on m68k. The function ptrace_report_syscall
stops early if PT_TRACED is not set, it sets ptrace_message,
and returns the result of fatal_signal_pending.
Setting ptrace_message to a passed in value of 0 is effectively not
setting ptrace_message, making that additional work a noop.
Returning the result of fatal_signal_pending and letting the caller
ignore the result becomes a noop in this change.
When a process is ptraced, the flag PT_PTRACED is always set in
current->ptrace. Testing for PT_PTRACED in ptrace_report_syscall is
just an optimization to fail early if the process is not ptraced.
Later on in ptrace_notify, ptrace_stop will test current->ptrace under
tasklist_lock and skip performing any work if the task is not ptraced.
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lkml.kernel.org/r/20220103213312.9144-8-ebiederm@xmission.com
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
-rw-r--r-- | arch/m68k/kernel/ptrace.c | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/arch/m68k/kernel/ptrace.c b/arch/m68k/kernel/ptrace.c index 94b3b274186d..aa3a0b8d07e9 100644 --- a/arch/m68k/kernel/ptrace.c +++ b/arch/m68k/kernel/ptrace.c @@ -273,17 +273,7 @@ out_eio: asmlinkage void syscall_trace(void) { - ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) - ? 0x80 : 0)); - /* - * this isn't the same as continuing with a signal, but it will do - * for normal use. strace only continues with a signal if the - * stopping signal is not SIGTRAP. -brl - */ - if (current->exit_code) { - send_sig(current->exit_code, current, 1); - current->exit_code = 0; - } + ptrace_report_syscall(0); } #if defined(CONFIG_COLDFIRE) || !defined(CONFIG_MMU) |