diff options
author | Maarten Lankhorst <maarten.lankhorst@canonical.com> | 2013-06-20 07:31:05 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-06-26 06:10:55 -0400 |
commit | a41b56efa70e060f650aeb54740aaf52044a1ead (patch) | |
tree | 776921423ea47eeeb4451aa9f66c49535bf64048 /arch/sh | |
parent | 1e876e3b1a9df25bb04682b0d48aaa7e8ae1fc82 (diff) |
arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not
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>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/include/asm/mutex-llsc.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sh/include/asm/mutex-llsc.h b/arch/sh/include/asm/mutex-llsc.h index 090358a7e1bb..dad29b687bd3 100644 --- a/arch/sh/include/asm/mutex-llsc.h +++ b/arch/sh/include/asm/mutex-llsc.h | |||
@@ -37,7 +37,7 @@ __mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *)) | |||
37 | } | 37 | } |
38 | 38 | ||
39 | static inline int | 39 | static inline int |
40 | __mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *)) | 40 | __mutex_fastpath_lock_retval(atomic_t *count) |
41 | { | 41 | { |
42 | int __done, __res; | 42 | int __done, __res; |
43 | 43 | ||
@@ -51,7 +51,7 @@ __mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *)) | |||
51 | : "t"); | 51 | : "t"); |
52 | 52 | ||
53 | if (unlikely(!__done || __res != 0)) | 53 | if (unlikely(!__done || __res != 0)) |
54 | __res = fail_fn(count); | 54 | __res = -1; |
55 | 55 | ||
56 | return __res; | 56 | return __res; |
57 | } | 57 | } |