a41b56efa7
This will allow me to call functions that have multiple arguments if fastpath fails. This is required to support ticket mutexes, because they need to be able to pass an extra argument to the fail function. Originally I duplicated the functions, by adding __mutex_fastpath_lock_retval_arg. This ended up being just a duplication of the existing function, so a way to test if fastpath was called ended up being better. This also cleaned up the reservation mutex patch some by being able to call an atomic_set instead of atomic_xchg, and making it easier to detect if the wrong unlock function was previously used. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: dri-devel@lists.freedesktop.org Cc: linaro-mm-sig@lists.linaro.org Cc: robclark@gmail.com Cc: rostedt@goodmis.org Cc: daniel@ffwll.ch Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/20130620113105.4001.83929.stgit@patser Signed-off-by: Ingo Molnar <mingo@kernel.org>
20 lines
648 B
C
20 lines
648 B
C
/*
|
|
* include/asm-generic/mutex-null.h
|
|
*
|
|
* Generic implementation of the mutex fastpath, based on NOP :-)
|
|
*
|
|
* This is used by the mutex-debugging infrastructure, but it can also
|
|
* be used by architectures that (for whatever reason) want to use the
|
|
* spinlock based slowpath.
|
|
*/
|
|
#ifndef _ASM_GENERIC_MUTEX_NULL_H
|
|
#define _ASM_GENERIC_MUTEX_NULL_H
|
|
|
|
#define __mutex_fastpath_lock(count, fail_fn) fail_fn(count)
|
|
#define __mutex_fastpath_lock_retval(count) (-1)
|
|
#define __mutex_fastpath_unlock(count, fail_fn) fail_fn(count)
|
|
#define __mutex_fastpath_trylock(count, fail_fn) fail_fn(count)
|
|
#define __mutex_slowpath_needs_to_unlock() 1
|
|
|
|
#endif
|