Re: [PATCH] docs/memory-barriers.txt: Fix broken DMA vs MMIO ordering example

From: Tony Luck
Date: Wed Mar 28 2018 - 13:57:21 EST


On Wed, Mar 28, 2018 at 6:02 AM, Sinan Kaya <okaya@xxxxxxxxxxxxxx> wrote:
> +linux-ia64
> Does IA64 follow this requirement? If not, is implementation planned?
>
> "no wmb() before writel()"
>
> Linus asked us to get rid of wmb() in front of writel() for UC memory.
> Just checking that we are not breaking anything for IA64.

We should be OK on ia64, writel() uses a cast to:

*(volatile unsigned int __force *)

which the compiler takes as a request to use a "st4.rel" instruction
(meaning "store with release semantics"). So the value stored will
be visible to anything that follows.

-Tony