]> err.no Git - linux-2.6/commit
[PATCH] ia64: fix noncoherent DMA API so devres builds
authorRoland Dreier <rdreier@cisco.com>
Wed, 14 Feb 2007 08:32:53 +0000 (00:32 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Wed, 14 Feb 2007 16:09:51 +0000 (08:09 -0800)
commitb7de8e7e3c7b79a72c20c7fd58bd65df3d146b13
treeb9e6007dbbf325159c173c0389f9a574e2cd1e52
parentac98695d6c1508b724f246f38ce57fb4e3cec356
[PATCH] ia64: fix noncoherent DMA API so devres builds

On ia64, drivers/base/dma-mapping.c doesn't build because it calls
dma_alloc_noncoherent() and dma_free_noncoherent(), which appear to be
terminally broken; the calls end up generating errors like

    drivers/base/dma-mapping.c: In function 'dmam_noncoherent_release':
    drivers/base/dma-mapping.c:32: error: 'struct ia64_machine_vector' has no member named 'platform_dma_free_coherent'

because the multiple levels of macro expansion in <asm/dma-mapping.h> and
<asm/machvec.h> end up turning a call to dma_free_noncoherent() into
ia64_mv.platform_dma_free_coherent (instead of the intended
ia64_mv.dma_free_coherent).

This patch fixes this by converting dma_{alloc,free}_noncoherent() into
inline functions that call the corresponding coherent functions, instead of
trying to do this with macros.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
Acked-by: Tony Luck <tony.luck@intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/asm-ia64/dma-mapping.h