diff options
Diffstat (limited to 'lib/lockref.c')
-rw-r--r-- | lib/lockref.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/lockref.c b/lib/lockref.c index f07a40d..6f9d434 100644 --- a/lib/lockref.c +++ b/lib/lockref.c @@ -1,8 +1,7 @@ #include <linux/export.h> #include <linux/lockref.h> -#include <linux/mutex.h> -#if USE_CMPXCHG_LOCKREF +#ifdef CONFIG_CMPXCHG_LOCKREF /* * Allow weakly-ordered memory architectures to provide barrier-less @@ -13,6 +12,14 @@ #endif /* + * Allow architectures to override the default cpu_relax() within CMPXCHG_LOOP. + * This is useful for architectures with an expensive cpu_relax(). + */ +#ifndef arch_mutex_cpu_relax +# define arch_mutex_cpu_relax() cpu_relax() +#endif + +/* * Note that the "cmpxchg()" reloads the "old" value for the * failure case. */ @@ -146,7 +153,6 @@ void lockref_mark_dead(struct lockref *lockref) assert_spin_locked(&lockref->lock); lockref->count = -128; } -EXPORT_SYMBOL(lockref_mark_dead); /** * lockref_get_not_dead - Increments count unless the ref is dead |