From 4845741567c819e587a0416e329a751af3111fd1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 7 Sep 2017 12:38:47 +0200 Subject: [PATCH 341/365] 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: stable-rt@vger.kernel.org #v4.9.18-rt14+ Reported-by: Gusenleitner Klaus Signed-off-by: Sebastian Andrzej Siewior --- kernel/locking/rtmutex.c | 1 - 1 file changed, 1 deletion(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c index bb6a15456e62..1f3ceaf15588 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -2312,7 +2312,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.28.0