diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2002-11-16 18:20:45 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-11-16 18:20:45 -0800 |
| commit | 9254615f6fc87c3d9e3b6d8ddee27899adbac722 (patch) | |
| tree | 5d4a122c0a8970d05340e8472b9302bbb07eae4b /kernel | |
| parent | 8edb233c64611e1513702cb02ac3d40899dfa115 (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.c | 7 |
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); } } |
