diff options
| -rw-r--r-- | kernel/futex.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index 3019b92e6917..5696d38cc71d 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
| @@ -791,10 +791,9 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *this) | |||
| 791 | new_owner = rt_mutex_next_owner(&pi_state->pi_mutex); | 791 | new_owner = rt_mutex_next_owner(&pi_state->pi_mutex); |
| 792 | 792 | ||
| 793 | /* | 793 | /* |
| 794 | * This happens when we have stolen the lock and the original | 794 | * It is possible that the next waiter (the one that brought |
| 795 | * pending owner did not enqueue itself back on the rt_mutex. | 795 | * this owner to the kernel) timed out and is no longer |
| 796 | * Thats not a tragedy. We know that way, that a lock waiter | 796 | * waiting on the lock. |
| 797 | * is on the fly. We make the futex_q waiter the pending owner. | ||
| 798 | */ | 797 | */ |
| 799 | if (!new_owner) | 798 | if (!new_owner) |
| 800 | new_owner = this->task; | 799 | new_owner = this->task; |
