Re: [PATCHv7 3/5] common: dma-mapping: Introduce common remapping functions
From: Laura Abbott
Date: Tue Aug 26 2014 - 12:58:48 EST
On 8/26/2014 3:05 AM, James Hogan wrote:
> On 12 August 2014 00:40, Laura Abbott <lauraa@xxxxxxxxxxxxxx> wrote:
>> For architectures without coherent DMA, memory for DMA may
>> need to be remapped with coherent attributes. Factor out
>> the the remapping code from arm and put it in a
>> common location to reduce code duplication.
>> As part of this, the arm APIs are now migrated away from
>> ioremap_page_range to the common APIs which use map_vm_area for remapping.
>> This should be an equivalent change and using map_vm_area is more
>> correct as ioremap_page_range is intended to bring in io addresses
>> into the cpu space and not regular kernel managed memory.
>> Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
>> Signed-off-by: Laura Abbott <lauraa@xxxxxxxxxxxxxx>
> This commit in linux-next () breaks the build for metag:
> drivers/base/dma-mapping.c: In function âdma_common_contiguous_remapâ:
> drivers/base/dma-mapping.c:294: error: implicit declaration of
> function âdma_common_pages_remapâ
> drivers/base/dma-mapping.c:294: warning: assignment makes pointer from
> integer without a cast
> drivers/base/dma-mapping.c: At top level:
> drivers/base/dma-mapping.c:308: error: conflicting types for
> drivers/base/dma-mapping.c:294: error: previous implicit declaration
> of âdma_common_pages_remapâ was here
> Looks like metag isn't alone either:
> $ git grep -L dma-mapping-common arch/*/include/asm/dma-mapping.h
> I've checked a couple of these arches (blackfin, xtensa) which don't
> include dma-mapping-common.h and their builds seem to be broken too.
Thanks for the report. Would you mind giving the following patch
a test (this is theoretical only but I think it should work)