On Thu, Sep 15, 2022, at 7:01 AM, Parav Pandit wrote: > The cited commit [1] describes that when using writel(), explcit wmb() > is not needed. However, it should have said that dma_wmb() is not > needed. Are you sure? As I understand it, the dma_wmb() only serializes a set of memory accesses, but does not serialized against an MMIO access, which depending on the CPU architecture may require a different type of barrier. E.g. on arm, writel() uses __iowmb(), which like wmb() is defined as "dsb(x); arm_heavy_mb();", while dma_wmb() is a "dmb(oshst)". Arnd