diff --git a/[refs] b/[refs] index fa989aa8fa50..b37554115a2e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d344193a05da89c97e965da2c5cbf687d7385eae +refs/heads/master: 4a5999429739844367d0f77a65efdd7db8202779 diff --git a/trunk/kernel/exit.c b/trunk/kernel/exit.c index 9220967f4256..4c70c377d21f 100644 --- a/trunk/kernel/exit.c +++ b/trunk/kernel/exit.c @@ -88,11 +88,12 @@ static void __exit_signal(struct task_struct *tsk) rcu_read_lock_held() || lockdep_tasklist_lock_is_held()); spin_lock(&sighand->siglock); + atomic_dec(&sig->count); posix_cpu_timers_exit(tsk); - if (atomic_dec_and_test(&sig->count)) + if (thread_group_leader(tsk)) { posix_cpu_timers_exit_group(tsk); - else { + } else { /* * If there is any task waiting for the group exit * then notify it: