|
@@ -1029,7 +1029,6 @@ static inline
|
|
|
void requeue_pi_wake_futex(struct futex_q *q, union futex_key *key,
|
|
|
struct futex_hash_bucket *hb)
|
|
|
{
|
|
|
- drop_futex_key_refs(&q->key);
|
|
|
get_futex_key_refs(key);
|
|
|
q->key = *key;
|
|
|
|
|
@@ -1227,6 +1226,7 @@ retry_private:
|
|
|
*/
|
|
|
if (ret == 1) {
|
|
|
WARN_ON(pi_state);
|
|
|
+ drop_count++;
|
|
|
task_count++;
|
|
|
ret = get_futex_value_locked(&curval2, uaddr2);
|
|
|
if (!ret)
|
|
@@ -1305,6 +1305,7 @@ retry_private:
|
|
|
if (ret == 1) {
|
|
|
/* We got the lock. */
|
|
|
requeue_pi_wake_futex(this, &key2, hb2);
|
|
|
+ drop_count++;
|
|
|
continue;
|
|
|
} else if (ret) {
|
|
|
/* -EDEADLK */
|