aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/exit.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/exit.c')
-rw-r--r--kernel/exit.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/kernel/exit.c b/kernel/exit.c
index 3d759c98fb11..9dd5f1336da2 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -953,10 +953,8 @@ fastcall NORET_TYPE void do_exit(long code)
953 if (tsk->splice_pipe) 953 if (tsk->splice_pipe)
954 __free_pipe_info(tsk->splice_pipe); 954 __free_pipe_info(tsk->splice_pipe);
955 955
956 /* PF_DEAD causes final put_task_struct after we schedule. */
957 preempt_disable(); 956 preempt_disable();
958 BUG_ON(tsk->flags & PF_DEAD); 957 /* causes final put_task_struct in finish_task_switch(). */
959 tsk->flags |= PF_DEAD;
960 tsk->state = EXIT_DEAD; 958 tsk->state = EXIT_DEAD;
961 959
962 schedule(); 960 schedule();
@@ -972,7 +970,7 @@ NORET_TYPE void complete_and_exit(struct completion *comp, long code)
972{ 970{
973 if (comp) 971 if (comp)
974 complete(comp); 972 complete(comp);
975 973
976 do_exit(code); 974 do_exit(code);
977} 975}
978 976