2005-10-08 10:04:45

by Qi Yong

[permalink] [raw]
Subject: [patch] PF_DEAD cleanup

Hello,

The PF_DEAD setting doesn't belong to exit_notify(), move it to a proper place.

Coywolf


Signed-off-by: Coywolf Qi Hunt <[email protected]>
---

exit.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

--- 2.6.14-rc3-cy/kernel/exit.c~orig 2005-10-08 17:03:39.000000000 +0800
+++ 2.6.14-rc3-cy/kernel/exit.c 2005-10-08 17:18:03.000000000 +0800
@@ -783,10 +783,6 @@ static void exit_notify(struct task_stru
/* If the process is dead, release it - nobody will wait for it */
if (state == EXIT_DEAD)
release_task(tsk);
-
- /* PF_DEAD causes final put_task_struct after we schedule. */
- preempt_disable();
- tsk->flags |= PF_DEAD;
}

fastcall NORET_TYPE void do_exit(long code)
@@ -869,7 +865,10 @@ fastcall NORET_TYPE void do_exit(long co
tsk->mempolicy = NULL;
#endif

- BUG_ON(!(current->flags & PF_DEAD));
+ /* PF_DEAD causes final put_task_struct after we schedule. */
+ preempt_disable();
+ current->flags |= PF_DEAD;
+
schedule();
BUG();
/* Avoid "noreturn function does return". */