aboutsummaryrefslogtreecommitdiffstats
path: root/lib/lockref.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lockref.c')
-rw-r--r--lib/lockref.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/lockref.c b/lib/lockref.c
index e294ae445c9a..6f9d434c1521 100644
--- a/lib/lockref.c
+++ b/lib/lockref.c
@@ -12,6 +12,14 @@
12#endif 12#endif
13 13
14/* 14/*
15 * Allow architectures to override the default cpu_relax() within CMPXCHG_LOOP.
16 * This is useful for architectures with an expensive cpu_relax().
17 */
18#ifndef arch_mutex_cpu_relax
19# define arch_mutex_cpu_relax() cpu_relax()
20#endif
21
22/*
15 * Note that the "cmpxchg()" reloads the "old" value for the 23 * Note that the "cmpxchg()" reloads the "old" value for the
16 * failure case. 24 * failure case.
17 */ 25 */
@@ -28,7 +36,7 @@
28 if (likely(old.lock_count == prev.lock_count)) { \ 36 if (likely(old.lock_count == prev.lock_count)) { \
29 SUCCESS; \ 37 SUCCESS; \
30 } \ 38 } \
31 cpu_relax(); \ 39 arch_mutex_cpu_relax(); \
32 } \ 40 } \
33} while (0) 41} while (0)
34 42