Andy Shevchenko [off-list ref] writes:
On Wed, Nov 11, 2015 at 1:07 AM, Måns Rullgård [off-list ref] wrote:
quoted
Andy Shevchenko [off-list ref] writes:
quoted
quoted
quoted
quoted
quoted
+ nb8800_writel(priv, NB8800_TX_DESC_ADDR, txb->dma_desc);
+ wmb(); /* ensure desc addr is written before starting DMA */
Hm… Have I missed corresponding rmb() ? If it's about MMIO, perhaps mmiowb() ?
Possibly.
Standalone wmb() doesn't make sense.
It does if you need to enforce ordering between normal and I/O memory.
In fact, since the descriptor is filled in using normal memory accesses,
my understanding is that mmiowb() would be insufficient here. The
comment could be improved, however.
Can you then explain what exactly you are assured against in all cases
where you are using wmb()s? It seems I don't recognize this part in
some excerpts.
Certainly. I'll re-read memory-barriers.txt to make sure I'm doing the
right thing, then write a better comment.
--
Måns Rullgård
mans@mansr.com