From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH] net: mvpp2: avoid bouncing buffers Date: Sun, 19 Aug 2018 19:55:05 -0700 (PDT) Message-ID: <20180819.195505.1988137313680465320.davem@davemloft.net> References: <20180820024730.9147-1-brian.brooks@linaro.org> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: antoine.tenart@bootlin.com, maxime.chevallier@bootlin.com, ymarkman@marvell.com, stefanc@marvell.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bjorn.topel@intel.com, brian.brooks@arm.com To: brian.brooks@linaro.org Return-path: In-Reply-To: <20180820024730.9147-1-brian.brooks@linaro.org> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org From: Brian Brooks 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. Thanks.