All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mutex: Always clear owner field upon mutex_unlock()
@ 2015-01-06 10:29 Chris Wilson
  2015-01-06 11:34 ` Peter Zijlstra
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Chris Wilson @ 2015-01-06 10:29 UTC (permalink / raw)
  To: linux-kernel; +Cc: Chris Wilson, Peter Zijlstra, Ingo Molnar, Daniel Vetter

Currently if DEBUG_MUTEXES is enabled, the mutex->owner field is only
cleared iff debug_locks is active. This exposes a race to other users of
the field where the mutex->owner may be still set to a stale value,
potentially upsetting mutex_spin_on_owner() among others.

References: https://bugs.freedesktop.org/show_bug.cgi?id=87955
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 kernel/locking/mutex-debug.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/locking/mutex-debug.c b/kernel/locking/mutex-debug.c
index 5cf6731b98e9..3ef3736002d8 100644
--- a/kernel/locking/mutex-debug.c
+++ b/kernel/locking/mutex-debug.c
@@ -80,13 +80,13 @@ void debug_mutex_unlock(struct mutex *lock)
 			DEBUG_LOCKS_WARN_ON(lock->owner != current);
 
 		DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
-		mutex_clear_owner(lock);
 	}
 
 	/*
 	 * __mutex_slowpath_needs_to_unlock() is explicitly 0 for debug
 	 * mutexes so that we can do it here after we've verified state.
 	 */
+	mutex_clear_owner(lock);
 	atomic_set(&lock->count, 1);
 }
 
-- 
2.1.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] mutex: Always clear owner field upon mutex_unlock()
  2015-01-06 10:29 [PATCH] mutex: Always clear owner field upon mutex_unlock() Chris Wilson
@ 2015-01-06 11:34 ` Peter Zijlstra
  2015-01-06 16:43 ` Davidlohr Bueso
  2015-01-09 12:34 ` [tip:locking/urgent] " tip-bot for Chris Wilson
  2 siblings, 0 replies; 4+ messages in thread
From: Peter Zijlstra @ 2015-01-06 11:34 UTC (permalink / raw)
  To: Chris Wilson; +Cc: linux-kernel, Ingo Molnar, Daniel Vetter

On Tue, Jan 06, 2015 at 10:29:35AM +0000, Chris Wilson wrote:
> Currently if DEBUG_MUTEXES is enabled, the mutex->owner field is only
> cleared iff debug_locks is active. This exposes a race to other users of
> the field where the mutex->owner may be still set to a stale value,
> potentially upsetting mutex_spin_on_owner() among others.


Thanks

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mutex: Always clear owner field upon mutex_unlock()
  2015-01-06 10:29 [PATCH] mutex: Always clear owner field upon mutex_unlock() Chris Wilson
  2015-01-06 11:34 ` Peter Zijlstra
@ 2015-01-06 16:43 ` Davidlohr Bueso
  2015-01-09 12:34 ` [tip:locking/urgent] " tip-bot for Chris Wilson
  2 siblings, 0 replies; 4+ messages in thread
From: Davidlohr Bueso @ 2015-01-06 16:43 UTC (permalink / raw)
  To: Chris Wilson; +Cc: linux-kernel, Peter Zijlstra, Ingo Molnar, Daniel Vetter

On Tue, 2015-01-06 at 10:29 +0000, Chris Wilson wrote:
> Currently if DEBUG_MUTEXES is enabled, the mutex->owner field is only
> cleared iff debug_locks is active. This exposes a race to other users of
> the field where the mutex->owner may be still set to a stale value,
> potentially upsetting mutex_spin_on_owner() among others.
> 
> References: https://bugs.freedesktop.org/show_bug.cgi?id=87955
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Peter Zijlstra <peterz@infradead.org>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>

Acked-by: Davidlohr Bueso <dave@stgolabs.net>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [tip:locking/urgent] mutex: Always clear owner field upon mutex_unlock()
  2015-01-06 10:29 [PATCH] mutex: Always clear owner field upon mutex_unlock() Chris Wilson
  2015-01-06 11:34 ` Peter Zijlstra
  2015-01-06 16:43 ` Davidlohr Bueso
@ 2015-01-09 12:34 ` tip-bot for Chris Wilson
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Chris Wilson @ 2015-01-09 12:34 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: hpa, dave, linux-kernel, torvalds, peterz, chris, daniel.vetter,
	mingo, tglx

Commit-ID:  a63b03e2d2477586440741677ecac45bcf28d7b1
Gitweb:     http://git.kernel.org/tip/a63b03e2d2477586440741677ecac45bcf28d7b1
Author:     Chris Wilson <chris@chris-wilson.co.uk>
AuthorDate: Tue, 6 Jan 2015 10:29:35 +0000
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Fri, 9 Jan 2015 11:20:39 +0100

mutex: Always clear owner field upon mutex_unlock()

Currently if DEBUG_MUTEXES is enabled, the mutex->owner field is only
cleared iff debug_locks is active. This exposes a race to other users of
the field where the mutex->owner may be still set to a stale value,
potentially upsetting mutex_spin_on_owner() among others.

References: https://bugs.freedesktop.org/show_bug.cgi?id=87955
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Davidlohr Bueso <dave@stgolabs.net>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/1420540175-30204-1-git-send-email-chris@chris-wilson.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 kernel/locking/mutex-debug.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/locking/mutex-debug.c b/kernel/locking/mutex-debug.c
index 5cf6731..3ef3736 100644
--- a/kernel/locking/mutex-debug.c
+++ b/kernel/locking/mutex-debug.c
@@ -80,13 +80,13 @@ void debug_mutex_unlock(struct mutex *lock)
 			DEBUG_LOCKS_WARN_ON(lock->owner != current);
 
 		DEBUG_LOCKS_WARN_ON(!lock->wait_list.prev && !lock->wait_list.next);
-		mutex_clear_owner(lock);
 	}
 
 	/*
 	 * __mutex_slowpath_needs_to_unlock() is explicitly 0 for debug
 	 * mutexes so that we can do it here after we've verified state.
 	 */
+	mutex_clear_owner(lock);
 	atomic_set(&lock->count, 1);
 }
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-01-09 12:36 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-06 10:29 [PATCH] mutex: Always clear owner field upon mutex_unlock() Chris Wilson
2015-01-06 11:34 ` Peter Zijlstra
2015-01-06 16:43 ` Davidlohr Bueso
2015-01-09 12:34 ` [tip:locking/urgent] " tip-bot for Chris Wilson

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.