Jetpack/kernel/kernel-4.9/rt-patches/0345-locking-rtmutex-don-t-...

36 lines
1.3 KiB
Diff

From 71c2a3042720160e8a83d684e1f15f2225d92c03 Mon Sep 17 00:00:00 2001
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: Thu, 7 Sep 2017 12:38:47 +0200
Subject: [PATCH 345/352] 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 <gus@keba.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
kernel/locking/rtmutex.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
index 5dbf678..3a8b5d4 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.7.4