smp_store_mb
#define smp_store_mb(var, value) do { (void)xchg(&var, value); } while (0)
#define smp_store_mb(var, value) do { (void)xchg(&var, value); } while (0)
#define smp_store_mb(x, v) do { WRITE_ONCE(x, v); smp_mb(); } while (0)