summaryrefslogtreecommitdiff
path: root/lib/lockref.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lockref.c')
-rw-r--r--lib/lockref.c12
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