2005-11-27 16:54:33

by Oleg Nesterov

[permalink] [raw]
Subject: [PATCH] remove unneeded sig->curr_target recalculation

This patch removes unneeded sig->curr_target recalculation under
'if (atomic_dec_and_test(&sig->count))' in __exit_signal().

When sig->count == 0 the signal can't be sent to this task and
next_thread(tsk) == tsk anyway.

Signed-off-by: Oleg Nesterov <[email protected]>

--- 2.6.15-rc2/kernel/signal.c~ 2005-11-23 19:17:35.000000000 +0300
+++ 2.6.15-rc2/kernel/signal.c 2005-11-27 22:50:46.000000000 +0300
@@ -355,8 +355,6 @@ void __exit_signal(struct task_struct *t
posix_cpu_timers_exit(tsk);
if (atomic_dec_and_test(&sig->count)) {
posix_cpu_timers_exit_group(tsk);
- if (tsk == sig->curr_target)
- sig->curr_target = next_thread(tsk);
tsk->signal = NULL;
spin_unlock(&sighand->siglock);
flush_sigqueue(&sig->shared_pending);