diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2017-03-22 11:32:47 +0000 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2017-03-22 11:32:47 +0000 |
| commit | c3b48399e06afceb62ef1dbd2d9c73cee35d5871 (patch) | |
| tree | 14c09d94eec8ffe617eb068db333d3cd945dce5a /kernel | |
| parent | 2b31ed1f9285d9560d70170cc04a83c197f0ec8c (diff) | |
| parent | 99d403faba47e5adeb11dbf1094972fc78c29a75 (diff) | |
futex: Add missing error handling to FUTEX_REQUEUE_PI
am: 99d403faba
Change-Id: I7d99bd76a3d1cd329295b157eb179fc194029c5d
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/futex.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index 45170163a0b3..3057dabf726f 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -2773,6 +2773,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags, if (q.pi_state && (q.pi_state->owner != current)) { spin_lock(q.lock_ptr); ret = fixup_pi_state_owner(uaddr2, &q, current); + if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current) + rt_mutex_unlock(&q.pi_state->pi_mutex); /* * Drop the reference to the pi state which * the requeue_pi() code acquired for us. |
