[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6DD0081391@AcuExch.aculab.com>
Date: Tue, 26 Sep 2017 14:23:40 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Matt Redfearn' <matt.redfearn@...tec.com>,
David Miller <davem@...emloft.net>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"alexandre.torgue@...com" <alexandre.torgue@...com>,
"peppe.cavallaro@...com" <peppe.cavallaro@...com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Linux MIPS Mailing List <linux-mips@...ux-mips.org>,
Paul Burton <paul.burton@...tec.com>,
"James Hogan" <james.hogan@...tec.com>
Subject: RE: [PATCH] net: stmmac: Meet alignment requirements for DMA
From: Matt Redfearn
> Sent: 26 September 2017 14:58
...
> > As long as you use the dma_{map,unamp}_single() and sync to/from
> > deivce interfaces properly, the cacheline issues will be handled properly
> > and the cpu and the device will see proper uptodate memory contents.
>
> I interpret the DMA API document (and the MIPS arch dma code operates
> this way) as stating that the driver must ensure that buffers passed to
> it are cacheline aligned, and cacheline sized, to prevent cache
> management throwing away adjacent data in the same cacheline.
The important thing is that the driver must not dirty any cache lines
that are mapped for DMA (from the device).
Typically this is not a problem because the driver doesn't look
at skb (etc) that contain receive buffers once the dma is setup.
David
Powered by blists - more mailing lists