From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gregory CLEMENT Subject: Re: [EXT] [PATCH net] net: mvneta: fix the Rx desc buffer DMA unmapping Date: Thu, 20 Sep 2018 16:59:58 +0200 Message-ID: <87k1ngjjtd.fsf@bootlin.com> References: <20180919132906.26868-1-antoine.tenart@bootlin.com> <5ab58500e78549618b597fdc2e54356a@IL-EXCH01.marvell.com> <20180920112010.GB1158@kwain> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Cc: Yelena Krivosheev , "davem\@davemloft.net" , "netdev\@vger.kernel.org" , "linux-kernel\@vger.kernel.org" , "thomas.petazzoni\@bootlin.com" , "maxime.chevallier\@bootlin.com" , "miquel.raynal\@bootlin.com" , Nadav Haklai , Stefan Chulski , Yan Markman , "mw\@semihalf.com" To: Antoine Tenart Return-path: In-Reply-To: <20180920112010.GB1158@kwain> (Antoine Tenart's message of "Thu, 20 Sep 2018 13:20:10 +0200") Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org Hi Antoine, On jeu., sept. 20 2018, Antoine Tenart wrote: > Hi Yelena, > > On Thu, Sep 20, 2018 at 10:14:56AM +0000, Yelena Krivosheev wrote: >> >> Please, check and fix all cases of dma_unmap_single() usage. >> See mvneta_rxq_drop_pkts() >> ... >> if (!data || !(rx_desc->buf_phys_addr)) >> continue; >> dma_unmap_single(pp->dev->dev.parent, rx_desc->buf_phys_addr, >> MVNETA_RX_BUF_SIZE(pp->pkt_size), DMA_FROM_DEVICE); >> __free_page(data); >> ... > > I had a look at the one reported by CONFIG_DMA_API_DEBUG, and at DMA > unmapping calls using PAGE_SIZE. As you pointed out there might be > others parts, thanks! Actually Jisheng had submitted a similar patch few weeks ago and as I pointed at this time, the dma_unmap in mvneta_rxq_drop_pkts can be called when the allocation is done in with HWBM in this case which use a dma_map_single. I though that in this case using dma_map_single is the things to do even if in the SWBM case it is less optimal. Gregory > > Antoine > > -- > Antoine Ténart, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com -- Gregory Clement, Bootlin Embedded Linux and Kernel engineering http://bootlin.com