diff options
author | Oleg Nesterov <oleg@redhat.com> | 2025-02-06 16:23:34 +0100 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2025-02-07 11:20:57 +0100 |
commit | 43966114b49988ebca6b7d17eb68bad7740e9fb2 (patch) | |
tree | 6c2e2e172482647770c3577b3164260f46e60a15 /kernel/exit.c | |
parent | fb3bbcfe344e64a46574a638b051ffd78762c12d (diff) |
exit: kill the pointless __exit_signal()->clear_tsk_thread_flag(TIF_SIGPENDING)
It predates the git history and most probably it was never needed. It
doesn't really hurt, but it looks confusing because its purpose is not
clear at all.
release_task(p) is called when this task has already passed exit_notify()
so signal_pending(p) == T shouldn't make any difference.
And even _if_ there were a subtle reason to clear TIF_SIGPENDING after
exit_notify(), this clear_tsk_thread_flag() can't help anyway. If the
exiting task is a group leader or if it is ptraced, release_task() will
be likely called when this task has already done its last schedule() from
do_task_dead().
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Link: https://lore.kernel.org/r/20250206152334.GB14620@redhat.com
Acked-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 2d7444da743d..0acb94b17caa 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -204,7 +204,6 @@ static void __exit_signal(struct task_struct *tsk) spin_unlock(&sighand->siglock); __cleanup_sighand(sighand); - clear_tsk_thread_flag(tsk, TIF_SIGPENDING); if (group_dead) tty_kref_put(tty); } |