From: Thomas Gleixner Date: Mon, 5 Oct 2009 16:18:03 +0000 (+0200) Subject: futex: Move exit_pi_state() call to release_mm() X-Git-Tag: 2.1b_release~10665^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=322a2c100a8998158445599ea437fb556aa95b11;p=platform%2Fkernel%2Fkernel-mfld-blackbay.git futex: Move exit_pi_state() call to release_mm() exit_pi_state() is called from do_exit() but not from do_execve(). Move it to release_mm() so it gets called from do_execve() as well. Signed-off-by: Thomas Gleixner LKML-Reference: Cc: stable@kernel.org Cc: Anirban Sinha Cc: Peter Zijlstra --- diff --git a/kernel/exit.c b/kernel/exit.c index ae5d866..bc2b1fd 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -989,8 +989,6 @@ NORET_TYPE void do_exit(long code) tsk->mempolicy = NULL; #endif #ifdef CONFIG_FUTEX - if (unlikely(!list_empty(&tsk->pi_state_list))) - exit_pi_state_list(tsk); if (unlikely(current->pi_state_cache)) kfree(current->pi_state_cache); #endif diff --git a/kernel/fork.c b/kernel/fork.c index 88ef51c..341965b 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -553,6 +553,8 @@ void mm_release(struct task_struct *tsk, struct mm_struct *mm) tsk->compat_robust_list = NULL; } #endif + if (unlikely(!list_empty(&tsk->pi_state_list))) + exit_pi_state_list(tsk); #endif /* Get rid of any cached register state */