[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20161217000639.GE62123@f23x64.localdomain>
Date: Fri, 16 Dec 2016 16:06:39 -0800
From: Darren Hart <dvhart@...radead.org>
To: Peter Zijlstra <peterz@...radead.org>
Cc: tglx@...utronix.de, mingo@...nel.org, juri.lelli@....com,
rostedt@...dmis.org, xlpang@...hat.com, bigeasy@...utronix.de,
linux-kernel@...r.kernel.org, mathieu.desnoyers@...icios.com,
jdesfossez@...icios.com, bristot@...hat.com
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@...utronix.de>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.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
Powered by blists - more mailing lists