Make thread exiting uniform by causing all threads to pass through get_signal when they are exiting. This simplifies the analysis of sychronization during exit and guarantees that all full set of registers will be available for ptrace to examine for threads that stop at PTRACE_EVENT_EXIT. Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx> --- kernel/exit.c | 4 ++-- kernel/seccomp.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/exit.c b/kernel/exit.c index fd1c04193e18..921519d80b56 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -931,8 +931,8 @@ do_group_exit(int exit_code) */ SYSCALL_DEFINE1(exit_group, int, error_code) { - do_group_exit((error_code & 0xff) << 8); - /* NOTREACHED */ + start_group_exit((error_code & 0xff) << 8); + /* get_signal will call do_exit */ return 0; } diff --git a/kernel/seccomp.c b/kernel/seccomp.c index 5301eca670a0..b1c06fd1b205 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -1250,7 +1250,7 @@ static int __seccomp_filter(int this_syscall, const struct seccomp_data *sd, if (action == SECCOMP_RET_KILL_THREAD) do_exit(SIGSYS); else - do_group_exit(SIGSYS); + start_group_exit(SIGSYS); } return -1; } -- 2.20.1