barrier.h 507 B

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