diff options
author | 2007-10-01 01:20:13 -0700 | |
---|---|---|
committer | 2007-10-01 07:52:23 -0700 | |
commit | 9f96cb1e8bca179a92afa40dfc3c49990f1cfc71 (patch) | |
tree | 7d1f921f488aa570083420dc3846856b17a7b2b6 /drivers/acpi/debug.c | |
parent | VT ioctl race fix (diff) | |
download | linux-dev-9f96cb1e8bca179a92afa40dfc3c49990f1cfc71.tar.xz linux-dev-9f96cb1e8bca179a92afa40dfc3c49990f1cfc71.zip |
robust futex thread exit race
Calling handle_futex_death in exit_robust_list for the different robust
mutexes of a thread basically frees the mutex. Another thread might grab
the lock immediately which updates the next pointer of the mutex.
fetch_robust_entry over the next pointer might therefore branch into the
robust mutex list of a different thread. This can cause two problems: 1)
some mutexes held by the dead thread are not getting freed and 2) some
mutexs held by a different thread are freed.
The next point need to be read before calling handle_futex_death.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/acpi/debug.c')
0 files changed, 0 insertions, 0 deletions