Merge branch develop-3.10
[firefly-linux-kernel-4.4.55.git] / arch / arm64 / include / asm / barrier.h
index 9a4c3d5b402e35acc8cb7e5636db73cb8a62e365..709f1f6d6bbd8fb5623beb94523dce950433f94d 100644 (file)
 #define smp_mb()       barrier()
 #define smp_rmb()      barrier()
 #define smp_wmb()      barrier()
+
+#define smp_store_release(p, v)                                                \
+do {                                                                   \
+       compiletime_assert_atomic_type(*p);                             \
+       barrier();                                                      \
+       ACCESS_ONCE(*p) = (v);                                          \
+} while (0)
+
+#define smp_load_acquire(p)                                            \
+({                                                                     \
+       typeof(*p) ___p1 = ACCESS_ONCE(*p);                             \
+       compiletime_assert_atomic_type(*p);                             \
+       barrier();                                                      \
+       ___p1;                                                          \
+})
+
 #else
 
 #define smp_mb()       dmb(ish)