diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2009-10-05 12:18:03 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-10-06 11:00:01 -0400 |
commit | 322a2c100a8998158445599ea437fb556aa95b11 (patch) | |
tree | 8039af7452e0fac73f3083cb7e9c1e00d3007811 | |
parent | fc6b177dee33365ccb29fe6d2092223cf8d679f9 (diff) |
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>
-rw-r--r-- | kernel/exit.c | 2 | ||||
-rw-r--r-- | kernel/fork.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index ae5d8660ddff..bc2b1fdfc354 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -989,8 +989,6 @@ NORET_TYPE void do_exit(long code) | |||
989 | tsk->mempolicy = NULL; | 989 | tsk->mempolicy = NULL; |
990 | #endif | 990 | #endif |
991 | #ifdef CONFIG_FUTEX | 991 | #ifdef CONFIG_FUTEX |
992 | if (unlikely(!list_empty(&tsk->pi_state_list))) | ||
993 | exit_pi_state_list(tsk); | ||
994 | if (unlikely(current->pi_state_cache)) | 992 | if (unlikely(current->pi_state_cache)) |
995 | kfree(current->pi_state_cache); | 993 | kfree(current->pi_state_cache); |
996 | #endif | 994 | #endif |
diff --git a/kernel/fork.c b/kernel/fork.c index 88ef51ca84de..341965b0ab1c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -553,6 +553,8 @@ void mm_release(struct task_struct *tsk, struct mm_struct *mm) | |||
553 | tsk->compat_robust_list = NULL; | 553 | tsk->compat_robust_list = NULL; |
554 | } | 554 | } |
555 | #endif | 555 | #endif |
556 | if (unlikely(!list_empty(&tsk->pi_state_list))) | ||
557 | exit_pi_state_list(tsk); | ||
556 | #endif | 558 | #endif |
557 | 559 | ||
558 | /* Get rid of any cached register state */ | 560 | /* Get rid of any cached register state */ |