futex: Always cleanup owner tid in unlock_pi
authorThomas Gleixner <tglx@linutronix.de>
Tue, 3 Jun 2014 12:27:07 +0000 (12:27 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Jun 2014 20:25:40 +0000 (13:25 -0700)
commit9ad5dabd87e8dd5506529e12e4e8c7b25fb88d7a
treead16c741562213e1ddf29c0148fe9585b6f9f321
parent63d6ad59dd43f44249150aa8c72eeb01bbe0a599
futex: Always cleanup owner tid in unlock_pi

commit 13fbca4c6ecd96ec1a1cfa2e4f2ce191fe928a5e upstream.

If the owner died bit is set at futex_unlock_pi, we currently do not
cleanup the user space futex.  So the owner TID of the current owner
(the unlocker) persists.  That's observable inconsistant state,
especially when the ownership of the pi state got transferred.

Clean it up unconditionally.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Kees Cook <keescook@chromium.org>
Cc: Will Drewry <wad@chromium.org>
Cc: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/futex.c