X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=kernel%2Ffork.c;h=4c20fff8c13a2caae048bc9f2b719bdaf5582dcf;hb=efcd9e0b91bcb92a1dd530d1a1f26eb83a5d21e2;hp=266c6af6ef1b089a1c64ee96428bd153db39217c;hpb=851b147e4411df6a1e7e90e2a609773c277eefd2;p=firefly-linux-kernel-4.4.55.git diff --git a/kernel/fork.c b/kernel/fork.c index 266c6af6ef1b..4c20fff8c13a 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 */