Messages in this thread Patch in this message | | | Date | Thu, 21 Sep 2017 20:49:41 +0200 | From | Sebastian Andrzej Siewior <> | Subject | [PATCH RT v2] locking/rtmutex: don't drop the wait_lock twice |
| |
Since the futex rework, __rt_mutex_start_proxy_lock() does no longer acquire the wait_lock so it must not drop it. Otherwise the lock is not only unlocked twice but also the preemption counter is underflown.
It is okay to remove that line because this function does not disable interrupts nor does it acquire the ->wait_lock. The caller does this so it is wrong do it here (after the futex rework).
Cc: rt-stable@vger.kernel.org Reported-by: Gusenleitner Klaus <gus@keba.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- v1…v2: update patch description.
kernel/locking/rtmutex.c | 1 - 1 file changed, 1 deletion(-)
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c index f03876322d4a..79f49d73e4d0 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -2281,7 +2281,6 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock, raw_spin_lock(&task->pi_lock); if (task->pi_blocked_on) { raw_spin_unlock(&task->pi_lock); - raw_spin_unlock_irq(&lock->wait_lock); return -EAGAIN; } task->pi_blocked_on = PI_REQUEUE_INPROGRESS; -- 2.14.1
| |