|
@@ -543,11 +543,15 @@ void mm_release(struct task_struct *tsk, struct mm_struct *mm)
|
|
|
|
|
|
/* Get rid of any futexes when releasing the mm */
|
|
/* Get rid of any futexes when releasing the mm */
|
|
#ifdef CONFIG_FUTEX
|
|
#ifdef CONFIG_FUTEX
|
|
- if (unlikely(tsk->robust_list))
|
|
|
|
|
|
+ if (unlikely(tsk->robust_list)) {
|
|
exit_robust_list(tsk);
|
|
exit_robust_list(tsk);
|
|
|
|
+ tsk->robust_list = NULL;
|
|
|
|
+ }
|
|
#ifdef CONFIG_COMPAT
|
|
#ifdef CONFIG_COMPAT
|
|
- if (unlikely(tsk->compat_robust_list))
|
|
|
|
|
|
+ if (unlikely(tsk->compat_robust_list)) {
|
|
compat_exit_robust_list(tsk);
|
|
compat_exit_robust_list(tsk);
|
|
|
|
+ tsk->compat_robust_list = NULL;
|
|
|
|
+ }
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
|