コードは次のとおりです。
static inline void __list_add_rcu(struct list_head * new,
struct list_head * prev, struct list_head * next)
{
new->next = next;
new->prev = prev;
smp_wmb();
next->prev = new;
prev->next = new;
}
#define smp_wmb() wmb()
#ifdef CONFIG_UNORDERED_IO
#define wmb() asm volatile("sfence" ::: "memory")
#else
#define wmb() asm volatile("" ::: "memory")
smp_wmb() の関数は、コンパイラによるwikiからの命令の並べ替えを防ぐことができることを知っています。
しかし、CPU による並べ替えを防止する RCU の方法は何ですか?