Re: [PATCH v2 00/21] Remove Mysterious Macro Intended to Obscure Weird Behaviours (mmiowb())

From: Will Deacon
Date: Fri Apr 05 2019 - 12:09:32 EST


On Fri, Apr 05, 2019 at 05:55:37AM -1000, Linus Torvalds wrote:
> On Fri, Apr 5, 2019 at 3:59 AM Will Deacon <will.deacon@xxxxxxx> wrote:
> >
> > I've also pushed this series out here:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/mmiowb
> >
> > and I would like to get it into -next once the first patch has been acked.
>
> Ack on it all.

Thanks.

> With the afore-mentioned slight worry about non-spinlocked IO
> ordering, but I _think_ it's purely limited to ia64 and wmb() and
> friends should work elsewhere?
>
> Or did I miss something? I think the ia64() mb/rmb/wmb stuff only
> works on normal memory on ia64.

I was worried about RISC-V, but actually their wmb() is "fence ow,ow"
which I think is stronger than their mmiowb() "fence o,w" implementation.

Everybody else should be fine with wmb() afaict, so if a driver writer
is smart enough to want this ordering outside of spinlocks, they can
do that for everybody apart from ia64.

Will