Re: [PATCH 0/3 v5] dma: add dma_*map*_attrs() interfaces

From: Andrew Morton
Date: Thu Mar 27 2008 - 23:20:04 EST


On Wed, 19 Mar 2008 18:07:09 -0700 akepner@xxxxxxx wrote:

>
> Introduce new interfaces, dma_*map*_attrs(), for passing
> architecture-specific attributes when memory is mapped and
> unmapped for DMA. Give the interfaces default implementations
> which ignore attributes. Also introduce the dma_{set|get}_attr()
> interfaces for setting and retrieving individual attributes. Define
> one attribute, DMA_ATTR_WRITE_BARRIER, in anticipation of its use
> by ia64/sn. Select whether architectures implement arch-specific
> versions of the dma_*map*_attrs() interfaces via HAVE_DMA_ATTRS in
> Kconfig.

alpha allmodconfig:


In file included from include/asm/pci.h:7,
from include/linux/pci.h:953,
from include/asm/core_mcpcia.h:9,
from include/asm/io.h:226,
from arch/alpha/kernel/asm-offsets.c:11:
include/linux/dma-mapping.h: In function 'dma_map_single_attrs':
include/linux/dma-mapping.h:157: error: implicit declaration of function 'pci_map_single'
include/linux/dma-mapping.h:157: error: implicit declaration of function 'alpha_gendev_to_pci'
include/linux/dma-mapping.h: In function 'dma_unmap_single_attrs':
include/linux/dma-mapping.h:165: error: implicit declaration of function 'pci_unmap_single'
include/linux/dma-mapping.h:165: warning: 'return' with a value, in function returning void
include/linux/dma-mapping.h: In function 'dma_map_sg_attrs':
include/linux/dma-mapping.h:172: error: implicit declaration of function 'pci_map_sg'
include/linux/dma-mapping.h: In function 'dma_unmap_sg_attrs':
include/linux/dma-mapping.h:180: error: implicit declaration of function 'pci_unmap_sg'
include/linux/dma-mapping.h:180: warning: 'return' with a value, in function returning void
In file included from include/linux/pci.h:953,
from include/asm/core_mcpcia.h:9,
from include/asm/io.h:226,
from arch/alpha/kernel/asm-offsets.c:11:


We're in include hell, I think. alpha defined CONFIG_HAS_DMA, so it has
already included asm/dma-mapping.h, which defines pci_map_single(). But I
suspect that the compiler skipped that inclusion because it was recursive.
Or something.

I will point you at http://userweb.kernel.org/~akpm/cross-compilers/ and
run away, sorry.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/