0001
0002 #ifndef __BARRIER_H
0003 #define __BARRIER_H
0004
0005 #define mb() __asm__ __volatile__("mb": : :"memory")
0006 #define rmb() __asm__ __volatile__("mb": : :"memory")
0007 #define wmb() __asm__ __volatile__("wmb": : :"memory")
0008
0009 #define __smp_load_acquire(p) \
0010 ({ \
0011 compiletime_assert_atomic_type(*p); \
0012 __READ_ONCE(*p); \
0013 })
0014
0015 #ifdef CONFIG_SMP
0016 #define __ASM_SMP_MB "\tmb\n"
0017 #else
0018 #define __ASM_SMP_MB
0019 #endif
0020
0021 #include <asm-generic/barrier.h>
0022
0023 #endif