lkml.org 
[lkml]   [2016]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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

\
 
 \ /
  Last update: 2016-12-17 01:07    [W:0.167 / U:0.456 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site