Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
/* If the headers do not support SYS_membarrier, statically use RCU_MB */
#ifdef SYS_membarrier
-#define membarrier(...) syscall(__NR_membarrier, __VA_ARGS__)
+# define MEMBARRIER_EXPEDITED (1 << 0)
+# define MEMBARRIER_DELAYED (1 << 1)
+# define membarrier(...) syscall(__NR_membarrier, __VA_ARGS__)
#else
-#undef RCU_MEMBARRIER
-#define RCU_MB
+# undef RCU_MEMBARRIER
+# define RCU_MB
#endif
#endif
static void smp_mb_heavy(void)
{
if (likely(has_sys_membarrier))
- membarrier(1);
+ membarrier(MEMBARRIER_EXPEDITED);
else
smp_mb();
}
if (init_done)
return;
init_done = 1;
- if (!membarrier(1))
+ if (!membarrier(MEMBARRIER_EXPEDITED))
has_sys_membarrier = 1;
}
#endif