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 <tglx@linutronix.de> LKML-Reference: <new-submission> Cc: stable@kernel.org Cc: Anirban Sinha <ani@anirban.org> Cc: Peter Zijlstra <peterz@infradead.org>
This commit is contained in:
@@ -989,8 +989,6 @@ NORET_TYPE void do_exit(long code)
|
|||||||
tsk->mempolicy = NULL;
|
tsk->mempolicy = NULL;
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_FUTEX
|
#ifdef CONFIG_FUTEX
|
||||||
if (unlikely(!list_empty(&tsk->pi_state_list)))
|
|
||||||
exit_pi_state_list(tsk);
|
|
||||||
if (unlikely(current->pi_state_cache))
|
if (unlikely(current->pi_state_cache))
|
||||||
kfree(current->pi_state_cache);
|
kfree(current->pi_state_cache);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -553,6 +553,8 @@ void mm_release(struct task_struct *tsk, struct mm_struct *mm)
|
|||||||
tsk->compat_robust_list = NULL;
|
tsk->compat_robust_list = NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (unlikely(!list_empty(&tsk->pi_state_list)))
|
||||||
|
exit_pi_state_list(tsk);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Get rid of any cached register state */
|
/* Get rid of any cached register state */
|
||||||
|
Reference in New Issue
Block a user