From e956e1352a4f7b21b3baa1bc4265cd6ce25585bf Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Mon, 21 Nov 2011 12:32:23 -0800 Subject: [PATCH] --- yaml --- r: 280367 b: refs/heads/master c: a585042f7b933539a0b6bc63650c2d49ffb2e55d h: refs/heads/master i: 280365: 5281ff8407901035a5d4e833fb1fdd16b6a90961 280363: a6828d859387c8c7d07d88a7f6d4db567ffca58c 280359: e2bf1b8032b5c8ef95146ae92d39758b24a3424c 280351: 07083be715cefa516723ed3f34d4d964f3571fcd v: v3 --- [refs] | 2 +- trunk/kernel/exit.c | 3 +-- trunk/kernel/power/process.c | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index f33642f08733..3895268d217f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a5be2d0d1a8746e7be5210e3d6b904455000443c +refs/heads/master: a585042f7b933539a0b6bc63650c2d49ffb2e55d diff --git a/trunk/kernel/exit.c b/trunk/kernel/exit.c index d0b7d988f873..95a4141d07e7 100644 --- a/trunk/kernel/exit.c +++ b/trunk/kernel/exit.c @@ -679,8 +679,6 @@ static void exit_mm(struct task_struct * tsk) tsk->mm = NULL; up_read(&mm->mmap_sem); enter_lazy_tlb(mm, current); - /* We don't want this task to be frozen prematurely */ - clear_freeze_flag(tsk); task_unlock(tsk); mm_update_next_owner(mm); mmput(mm); @@ -1040,6 +1038,7 @@ NORET_TYPE void do_exit(long code) exit_rcu(); /* causes final put_task_struct in finish_task_switch(). */ tsk->state = TASK_DEAD; + tsk->flags |= PF_NOFREEZE; /* tell freezer to ignore us */ schedule(); BUG(); /* Avoid "noreturn function does return". */ diff --git a/trunk/kernel/power/process.c b/trunk/kernel/power/process.c index fe2787207f00..23822dc14b6c 100644 --- a/trunk/kernel/power/process.c +++ b/trunk/kernel/power/process.c @@ -25,8 +25,7 @@ static inline int freezable(struct task_struct * p) { if ((p == current) || - (p->flags & PF_NOFREEZE) || - (p->exit_state != 0)) + (p->flags & PF_NOFREEZE)) return 0; return 1; }