aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-arm/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-arm/system.h')
-rw-r--r--include/asm-arm/system.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h
index aa223fc546af..e5aa372beb94 100644
--- a/include/asm-arm/system.h
+++ b/include/asm-arm/system.h
@@ -193,11 +193,19 @@ extern unsigned int user_debug;
#endif
#if __LINUX_ARM_ARCH__ >= 6
-#define mb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
- : : "r" (0) : "memory")
+#define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
+ : : "r" (0) : "memory")
+#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
+ : : "r" (0) : "memory")
+#define dmb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" \
+ : : "r" (0) : "memory")
#else
-#define mb() __asm__ __volatile__ ("" : : : "memory")
+#define isb() __asm__ __volatile__ ("" : : : "memory")
+#define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \
+ : : "r" (0) : "memory")
+#define dmb() __asm__ __volatile__ ("" : : : "memory")
#endif
+#define mb() dmb()
#define rmb() mb()
#define wmb() mb()
#define read_barrier_depends() do { } while(0)