On Mon, Sep 25, 2017 at 08:10:54PM +0800, Boqun Feng wrote:
> > static void membarrier_register_private_expedited(void)
> > {
> >         struct task_struct *p = current;
> > 
> >         if (READ_ONCE(p->mm->membarrier_private_expedited))
> >                 return;
> >         membarrier_arch_register_private_expedited(p);

Should we not then also do:

            barrier();

> >         WRITE_ONCE(p->mm->membarrier_private_expedited, 1);
> > }

to avoid the compiler lifting that store?

Reply via email to