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 <[email protected]>
> Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
> ---
>  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

Reply via email to