On Friday 29 April 2011, Benjamin Herrenschmidt wrote:
However, dma_alloc_coherent() memory can't be used with the dma_sync_* API as its return address (unlike other architectures) is not in the kernel direct mapped memory range.
Well, on non-coherent architectures, dma_sync_* are cache flushes, I don't see the point of doing those on a non-cachable mapping anyways.
The point was that you cannot do
#define dma_alloc_coherent dma_alloc_noncoherent
on ARM, as some other architectures do.
Arnd