RE: [PATCH] net: mvpp2: avoid bouncing buffers

From: Yan Markman
Date: Mon Aug 20 2018 - 03:02:55 EST


Hi everybody
The MVPP2 code already has DMA's patch taken from OLD Backport and placed by Antoine Tenart.
Please refer the attached
Best regards
Yan Markman


-----Original Message-----
From: Christoph Hellwig [mailto:hch@xxxxxxxxxxxxx]
Sent: Monday, August 20, 2018 9:23 AM
To: David Miller <davem@xxxxxxxxxxxxx>
Cc: brian.brooks@xxxxxxxxxx; antoine.tenart@xxxxxxxxxxx; maxime.chevallier@xxxxxxxxxxx; Yan Markman <ymarkman@xxxxxxxxxxx>; Stefan Chulski <stefanc@xxxxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; bjorn.topel@xxxxxxxxx; brian.brooks@xxxxxxx
Subject: Re: [PATCH] net: mvpp2: avoid bouncing buffers

On Sun, Aug 19, 2018 at 07:55:05PM -0700, David Miller wrote:
> From: Brian Brooks <brian.brooks@xxxxxxxxxx>
> Date: Sun, 19 Aug 2018 21:47:30 -0500
>
> > @@ -5126,6 +5126,12 @@ static int mvpp2_probe(struct platform_device *pdev)
> > }
> >
> > if (priv->hw_version == MVPP22) {
> > + /* Platform code may have set dev->dma_mask to point
> > + * to dev->coherent_dma_mask, but we want to ensure
> > + * they take different values due to comment below.
> > + */
> > + pdev->dev.dma_mask = &priv->dma_mask;
>
> The platform code might be doing this exactly because it cannot
> support different coherent and streaming DMA masks.
>
> Well, in any case, the platform code is doing it for a reason and
> overriding this in a "driver" of all places seems totally
> inappropriate and at best a layering violation.
>
> I would rather you fix this in a way that involves well defined APIs
> that set the DMA masks or whatever to the values that you need, rather
> than going behind the platform code's back and changing the DMA mask
> pointer like this.

Agreed. What platform do you see this issue on?

Attachment: 0009-net-mvpp2-fix-the-dma_mask-and-coherent_dma_mask-set.patch
Description: 0009-net-mvpp2-fix-the-dma_mask-and-coherent_dma_mask-set.patch