summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2002-11-16 18:20:45 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2002-11-16 18:20:45 -0800
commit9254615f6fc87c3d9e3b6d8ddee27899adbac722 (patch)
tree5d4a122c0a8970d05340e8472b9302bbb07eae4b /kernel
parent8edb233c64611e1513702cb02ac3d40899dfa115 (diff)
Make sure we clean user_tid when we've released the
memory space it was associated with.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/fork.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 6eb0499511cc..a9f8eb192f9a 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -408,12 +408,15 @@ void mm_release(void)
complete(vfork_done);
}
if (tsk->user_tid) {
+ int * user_tid = tsk->user_tid;
+ tsk->user_tid = NULL;
+
/*
* We dont check the error code - if userspace has
* not set up a proper pointer then tough luck.
*/
- put_user(0, tsk->user_tid);
- sys_futex((unsigned long)tsk->user_tid, FUTEX_WAKE, 1, NULL);
+ put_user(0, user_tid);
+ sys_futex((unsigned long)user_tid, FUTEX_WAKE, 1, NULL);
}
}