aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/locking
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-02-21 13:45:03 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2015-02-21 13:45:03 -0500
commit10436cf8812edadcc1813dbda39a69e9965caee6 (patch)
tree5659ab914ddda91fac03556cc8d38f13fe87e185 /kernel/locking
parent5fbe4c224ce3e2e62bd487158dfd1e89f9ae3e11 (diff)
parentd6abfdb2022368d8c6c4be3f11a06656601a6cc2 (diff)
Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull locking fixes from Ingo Molnar: "Two fixes: the paravirt spin_unlock() corruption/crash fix, and an rtmutex NULL dereference crash fix" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/spinlocks/paravirt: Fix memory corruption on unlock locking/rtmutex: Avoid a NULL pointer dereference on deadlock
Diffstat (limited to 'kernel/locking')
-rw-r--r--kernel/locking/rtmutex.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
index 3059bc2f022d..e16e5542bf13 100644
--- a/kernel/locking/rtmutex.c
+++ b/kernel/locking/rtmutex.c
@@ -1193,7 +1193,8 @@ rt_mutex_slowlock(struct rt_mutex *lock, int state,
1193 ret = __rt_mutex_slowlock(lock, state, timeout, &waiter); 1193 ret = __rt_mutex_slowlock(lock, state, timeout, &waiter);
1194 1194
1195 if (unlikely(ret)) { 1195 if (unlikely(ret)) {
1196 remove_waiter(lock, &waiter); 1196 if (rt_mutex_has_waiters(lock))
1197 remove_waiter(lock, &waiter);
1197 rt_mutex_handle_deadlock(ret, chwalk, &waiter); 1198 rt_mutex_handle_deadlock(ret, chwalk, &waiter);
1198 } 1199 }
1199 1200