* [PATCH -rt] rtmutex: enable deadlock detection in ww_mutex_lock functions
@ 2015-01-27 15:56 Gustavo Bittencourt
0 siblings, 0 replies; only message in thread
From: Gustavo Bittencourt @ 2015-01-27 15:56 UTC (permalink / raw)
To: linux-kernel; +Cc: Steven Rostedt, Thomas Gleixner
According the ww-mutex-design.txt documentation, the
ww_mutex_lock_interruptible and ww_mutex_lock functions should return -EDEADLK
when faced with a deadlock. To do so, the detect_deadlock flag in the
rt_mutex_slowlock calls should be enabled. This patch corrects potential
deadlocks when running PREEMPT_RT with nouveau driver.
PS: Sorry to post again, CC'ing -rt maintainers now.
Signed-off-by: Gustavo Bittencourt <gbitten@gmail.com>
---
kernel/locking/rtmutex.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c
index 6c40660..3f6ef91 100644
--- a/kernel/locking/rtmutex.c
+++ b/kernel/locking/rtmutex.c
@@ -1965,7 +1965,7 @@ __ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ww_c
might_sleep();
mutex_acquire(&lock->base.dep_map, 0, 0, _RET_IP_);
- ret = rt_mutex_slowlock(&lock->base.lock, TASK_INTERRUPTIBLE, NULL, 0, ww_ctx);
+ ret = rt_mutex_slowlock(&lock->base.lock, TASK_INTERRUPTIBLE, NULL, 1, ww_ctx);
if (ret)
mutex_release(&lock->base.dep_map, 1, _RET_IP_);
else if (!ret && ww_ctx->acquired > 1)
@@ -1984,7 +1984,7 @@ __ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx)
mutex_acquire_nest(&lock->base.dep_map, 0, 0, &ww_ctx->dep_map,
_RET_IP_);
- ret = rt_mutex_slowlock(&lock->base.lock, TASK_UNINTERRUPTIBLE, NULL, 0, ww_ctx);
+ ret = rt_mutex_slowlock(&lock->base.lock, TASK_UNINTERRUPTIBLE, NULL, 1, ww_ctx);
if (ret)
mutex_release(&lock->base.dep_map, 1, _RET_IP_);
else if (!ret && ww_ctx->acquired > 1)
--
1.9.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-01-27 15:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-27 15:56 [PATCH -rt] rtmutex: enable deadlock detection in ww_mutex_lock functions Gustavo Bittencourt
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.