Messages in this thread | | | From | Måns Rullgård <> | Subject | Re: [PATCH v5] net: ethernet: add driver for Aurora VLSI NB8800 Ethernet controller | Date | Wed, 11 Nov 2015 00:44:26 +0000 |
| |
Andy Shevchenko <andy.shevchenko@gmail.com> writes:
> On Wed, Nov 11, 2015 at 1:07 AM, Måns Rullgård <mans@mansr.com> wrote: >> Andy Shevchenko <andy.shevchenko@gmail.com> writes: > >>>>>> + 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
| |