Files
linux/kernel
Darren Hart 7ada876a87 futex: Fix errors in nested key ref-counting
futex_wait() is leaking key references due to futex_wait_setup()
acquiring an additional reference via the queue_lock() routine. The
nested key ref-counting has been masking bugs and complicating code
analysis. queue_lock() is only called with a previously ref-counted
key, so remove the additional ref-counting from the queue_(un)lock()
functions.

Also futex_wait_requeue_pi() drops one key reference too many in
unqueue_me_pi(). Remove the key reference handling from
unqueue_me_pi(). This was paired with a queue_lock() in
futex_lock_pi(), so the count remains unchanged.

Document remaining nested key ref-counting sites.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Reported-and-tested-by: Matthieu Fertré<matthieu.fertre@kerlabs.com>
Reported-by: Louis Rilling<louis.rilling@kerlabs.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: John Kacur <jkacur@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
LKML-Reference: <4CBB17A8.70401@linux.intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@kernel.org
2010-10-19 11:41:54 +02:00
..
2010-07-29 13:24:57 +02:00
2010-08-09 16:48:42 -04:00
2010-07-14 11:29:46 +02:00
2010-07-28 09:58:19 -04:00
2010-08-11 00:28:20 -04:00
2010-09-09 18:57:23 -07:00
2010-09-22 17:22:39 -07:00
2010-10-01 10:50:58 -07:00
2010-06-29 10:07:09 +02:00
2010-08-11 23:04:20 +09:30
2010-05-11 12:01:10 -07:00
2010-09-21 13:50:50 +02:00
2010-10-07 09:41:25 +02:00
2010-07-27 12:40:54 +02:00
2010-03-06 11:26:23 -08:00
2010-05-10 08:48:39 +02:00
2010-09-13 10:26:52 +02:00