Messages in this thread Patch in this message | | | From | Davidlohr Bueso <> | Subject | [PATCH 2/4] locking/rtmutex: Use cmp-cmpxchg | Date | Tue, 19 May 2015 10:24:56 -0700 |
| |
Avoid unnecessary cmpxchg calls, all of our other locks use it as well.
Signed-off-by: Davidlohr Bueso <dbueso@suse.de> --- kernel/locking/rtmutex.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c index 74188d8..1d5cc9d 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -74,7 +74,9 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock) * set up. */ #ifndef CONFIG_DEBUG_RT_MUTEXES -# define rt_mutex_cmpxchg(l,c,n) (cmpxchg(&l->owner, c, n) == c) +# define rt_mutex_cmpxchg(l,c,n) \ + (l->owner == c && cmpxchg(&l->owner, c, n) == c) + static inline void mark_rt_mutex_waiters(struct rt_mutex *lock) { unsigned long owner, *p = (unsigned long *) &lock->owner; -- 2.1.4
| |