Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752697AbbF3Lks (ORCPT ); Tue, 30 Jun 2015 07:40:48 -0400 Received: from mail-wi0-f180.google.com ([209.85.212.180]:38154 "EHLO mail-wi0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752014AbbF3Lkl (ORCPT ); Tue, 30 Jun 2015 07:40:41 -0400 MIME-Version: 1.0 In-Reply-To: <20150630110521.GA7445@e104818-lin.cambridge.arm.com> References: <1435597845-19811-1-git-send-email-lorenx4@gmail.com> <20150630110521.GA7445@e104818-lin.cambridge.arm.com> Date: Tue, 30 Jun 2015 13:40:40 +0200 Message-ID: Subject: Re: [PATCH v4] arm DMA: Fix allocation from CMA for coherent DMA From: Lorenzo Nava To: Catalin Marinas Cc: Arnd Bergmann , Russell King - ARM Linux , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2325 Lines: 60 On Tue, Jun 30, 2015 at 1:05 PM, Catalin Marinas wrote: > > On Mon, Jun 29, 2015 at 07:10:45PM +0200, Lorenzo Nava wrote: > > This patch allows the use of CMA for DMA coherent memory allocation. > > At the moment if the input parameter "is_coherent" is set to true > > the allocation is not made using the CMA, which I think is not the > > desired behaviour. > > > > Signed-off-by: Lorenzo Nava > > It's nice to have a proper email address here. oops, sorry I thought it was made to avoid spam. This is an easy fix :-) > > > @@ -680,9 +684,14 @@ void *arm_dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, > > static void *arm_coherent_dma_alloc(struct device *dev, size_t size, > > dma_addr_t *handle, gfp_t gfp, struct dma_attrs *attrs) > > { > > - pgprot_t prot = __get_dma_pgprot(attrs, PAGE_KERNEL); > > + pgprot_t prot; > > void *memory; > > > > + if (attrs == NULL) > > + prot = PAGE_KERNEL; > > + else > > + prot = __get_dma_pgprot(attrs, PAGE_KERNEL); > > + > > if (dma_alloc_from_coherent(dev, size, handle, &memory)) > > return memory; > > We have a slight inconsistency with commit 55af8a91640d (ARM: 8387/1: > arm/mm/dma-mapping.c: Add arm_coherent_dma_mmap) where the attrs are not > honoured for the coherent ops. That is, DMA_ATTRS_WRITE_COMBINE > doesn't have any effect for mmap but with your patch it still has an > effect on alloc. > > I think we could just ignore it, the WRITE_COMBINE attr is a hint that > the arch may or may not implement and I haven't seen it used with > coherent mappings. So in this case just pass PAGE_KERNEL to > __dma_alloc() directly without calling __get_dma_pgprot(). > > (it also looks like commit 55af8a91640d left an unused attrs argument > for __arm_dma_mmap that can be removed as well) > Right: ok I just pass PAGE_KERNEL to the alloc function, so we are coherent with the mmap. > Apart from the above, you can add: > > Reviewed-by: Catalin Marinas Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/