![]() | ||||||||||
Messages in this thread Patch in this message |
Hello, The PF_DEAD setting doesn't belong to exit_notify(), move it to a proper place. Coywolf Signed-off-by: Coywolf Qi Hunt <qiyong@fc-cn.com> --- 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". */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | |||||||||
| Last update: 2005-10-08 08:08 [W:0.158 / U:0.070 seconds] ©2003-2008 Jasper Spaans | ||||||||||