X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=kernel%2Ffork.c;h=4c20fff8c13a2caae048bc9f2b719bdaf5582dcf;hb=f579bbcd9bb8b688df03191b92c56ab8af4d6322;hp=266c6af6ef1b089a1c64ee96428bd153db39217c;hpb=5e5027bd26ed4df735d29e66cd5c1c9b5959a587;p=~andy%2Flinux diff --git a/kernel/fork.c b/kernel/fork.c index 266c6af6ef1..4c20fff8c13 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -570,12 +570,18 @@ void mm_release(struct task_struct *tsk, struct mm_struct *mm) /* Get rid of any futexes when releasing the mm */ #ifdef CONFIG_FUTEX - if (unlikely(tsk->robust_list)) + if (unlikely(tsk->robust_list)) { exit_robust_list(tsk); + tsk->robust_list = NULL; + } #ifdef CONFIG_COMPAT - if (unlikely(tsk->compat_robust_list)) + if (unlikely(tsk->compat_robust_list)) { compat_exit_robust_list(tsk); + 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 */