summaryrefslogtreecommitdiffstats
path: root/kernel/arch/arm/include/asm/mutex.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/arch/arm/include/asm/mutex.h')
-rw-r--r--kernel/arch/arm/include/asm/mutex.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/kernel/arch/arm/include/asm/mutex.h b/kernel/arch/arm/include/asm/mutex.h
new file mode 100644
index 000000000..87c044910
--- /dev/null
+++ b/kernel/arch/arm/include/asm/mutex.h
@@ -0,0 +1,21 @@
+/*
+ * arch/arm/include/asm/mutex.h
+ *
+ * ARM optimized mutex locking primitives
+ *
+ * Please look into asm-generic/mutex-xchg.h for a formal definition.
+ */
+#ifndef _ASM_MUTEX_H
+#define _ASM_MUTEX_H
+/*
+ * On pre-ARMv6 hardware this results in a swp-based implementation,
+ * which is the most efficient. For ARMv6+, we have exclusive memory
+ * accessors and use atomic_dec to avoid the extra xchg operations
+ * on the locking slowpaths.
+ */
+#if __LINUX_ARM_ARCH__ < 6
+#include <asm-generic/mutex-xchg.h>
+#else
+#include <asm-generic/mutex-dec.h>
+#endif
+#endif /* _ASM_MUTEX_H */