On Tue, 7 Mar 2017, Stefano Stabellini wrote: > > > + > > > + ring = container_of(work, struct xen_9pfs_dataring, work); > > > + priv = ring->priv; > > > + > > > + while (1) { > > > + cons = ring->intf->in_cons; > > > + prod = ring->intf->in_prod; > > > + rmb(); > > > > > > Is this rmb() or mb()? (Or, in fact, virt_XXX()?) You used mb() in the > > previous patch. > > I think they should all be virt_XXX, thanks.
regarding mb() vs. rmb(), give a look at the workflow at the end of docs/misc/9pfs.markdown, under "Ring Usage".