diff options
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 6686ed1e4aa3..abf9cf3b95c6 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -837,8 +837,7 @@ static void exit_notify(struct task_struct *tsk, int group_dead) | |||
837 | */ | 837 | */ |
838 | if (tsk->exit_signal != SIGCHLD && !task_detached(tsk) && | 838 | if (tsk->exit_signal != SIGCHLD && !task_detached(tsk) && |
839 | (tsk->parent_exec_id != tsk->real_parent->self_exec_id || | 839 | (tsk->parent_exec_id != tsk->real_parent->self_exec_id || |
840 | tsk->self_exec_id != tsk->parent_exec_id) && | 840 | tsk->self_exec_id != tsk->parent_exec_id)) |
841 | !capable(CAP_KILL)) | ||
842 | tsk->exit_signal = SIGCHLD; | 841 | tsk->exit_signal = SIGCHLD; |
843 | 842 | ||
844 | signal = tracehook_notify_death(tsk, &cookie, group_dead); | 843 | signal = tracehook_notify_death(tsk, &cookie, group_dead); |
@@ -924,6 +923,8 @@ NORET_TYPE void do_exit(long code) | |||
924 | schedule(); | 923 | schedule(); |
925 | } | 924 | } |
926 | 925 | ||
926 | exit_irq_thread(); | ||
927 | |||
927 | exit_signals(tsk); /* sets PF_EXITING */ | 928 | exit_signals(tsk); /* sets PF_EXITING */ |
928 | /* | 929 | /* |
929 | * tsk->flags are checked in the futex code to protect against | 930 | * tsk->flags are checked in the futex code to protect against |