[PATCH] pi-futex: robust-futex exit
authorIngo Molnar <mingo@elte.hu>
Sat, 29 Jul 2006 03:17:57 +0000 (05:17 +0200)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 29 Jul 2006 04:02:00 +0000 (21:02 -0700)
commite3f2ddeac718c768fdac4b7fe69d465172f788a8
tree5428532dc6c87710c35a71858425f6d726f0e44c
parent627371d73cdd04ed23fe098755b4f855138ad9e0
[PATCH] pi-futex: robust-futex exit

Fix robust PI-futexes to be properly unlocked on unexpected exit.

For this to work the kernel has to know whether a futex is a PI or a
non-PI one, because the semantics are different.  Since the space in
relevant glibc data structures is extremely scarce, the best solution is
to encode the 'PI' information in bit 0 of the robust list pointer.
Existing (non-PI) glibc robust futexes have this bit always zero, so the
ABI is kept.  New glibc with PI-robust-futexes will set this bit.

Further fixes from Thomas Gleixner <tglx@linutronix.de>

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Ulrich Drepper <drepper@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/futex.h
kernel/futex.c
kernel/futex_compat.c