Re: [PATCH 0/3] dma-mapping:remove CONFIG_HAVE_DMA_ATTRS
From: Ming Lei
Date: Sun Jul 05 2009 - 08:44:44 EST
On Sun, 5 Jul 2009 13:19:36 +0200
Arnd Bergmann <arnd@xxxxxxxx> wrote:
> On Saturday 04 July 2009, tom.leiming@xxxxxxxxx wrote:
> > 2,Disabling CONFIG_HAVE_DMA_ATTRS may lead to a compile failure;
>
> I'm not sure I understand this point. CONFIG_HAVE_DMA_ATTRS tells
> the common code whether the architecture understands dma attributes.
If a new arch does not define CONFIG_HAVE_DMA_ATTRS but uses
dma-mapping-common.h, it will lead to a compile failure.
include/asm-generic/dma-mapping-common.h
#define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a,
s, r, NULL)
...
include/linux/dma-mapping.h
#ifndef CONFIG_HAVE_DMA_ATTRS
struct dma_attrs;
#define dma_map_single_attrs(dev, cpu_addr, size, dir, attrs) \
dma_map_single(dev, cpu_addr, size, dir)
...
#endif
> If you enable it on all architectures, you will get new compile
> failures on all those that don't understand them, while the current
> code correctly falls back on the standard functions.
You are right, the patch will lead to new compile failure for the
ARCHs, on which disables CONFIG_HAVE_DMA_ATTRS and doesn't use
dma-mapping-common.h. So the patch is not mature.
>
> I think it makes sense to combine CONFIG_HAVE_DMA_ATTRS with the
> use of dma-mapping-common.h, but the majority of the architectures
> just uses a static mapping, where attributes make no sense.
>
> You also missed powerpc64, which selects CONFIG_HAVE_DMA_ATTRS
> but does not (yet) use dma-mapping-common.h.
ppc64 doesn't use dma-mapping-common.h, so the patch doesn't consider
it.
--
Lei Ming
--
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/