Messages in this thread | | | Date | Fri, 16 Dec 2016 16:06:39 -0800 | From | Darren Hart <> | Subject | Re: [PATCH -v4 02/10] futex: Add missing error handling to FUTEX_REQUEUE_PI |
| |
On Tue, Dec 13, 2016 at 09:36:40AM +0100, Peter Zijlstra wrote: > Thomas spotted that fixup_pi_state_owner() can return errors and we > fail to unlock the rt_mutex in that case. >
We handled this explicitly before Patch 1/10, so can this be rolled into 1/10 (er 9) as a single commit?
> Reported-by: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > --- > kernel/futex.c | 2 ++ > 1 file changed, 2 insertions(+) > > --- a/kernel/futex.c > +++ b/kernel/futex.c > @@ -2896,6 +2896,8 @@ static int futex_wait_requeue_pi(u32 __u > 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. > > >
-- Darren Hart Intel Open Source Technology Center
| |