1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __BARRIER_H 3 #define __BARRIER_H 4 5 #define mb() __asm__ __volatile__("mb": : :"memory") 6 #define rmb() __asm__ __volatile__("mb": : :"memory") 7 #define wmb() __asm__ __volatile__("wmb": : :"memory") 8 9 #define __smp_load_acquire(p) \ 10 ({ \ 11 compiletime_assert_atomic_type(*p); \ 12 __READ_ONCE(*p); \ 13 }) 14 15 #ifdef CONFIG_SMP 16 #define __ASM_SMP_MB "\tmb\n" 17 #else 18 #define __ASM_SMP_MB 19 #endif 20 21 #include <asm-generic/barrier.h> 22 23 #endif /* __BARRIER_H */ 24