/* Allocate DMA-coherent memory space and return both the kernel remapped virtual and bus address for that space.  */
void* dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp)
/* Allocate DMA-coherent memory space and return both the kernel remapped virtual and bus address for that space.  */
void* dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp)
{
	void *memory;
	if (dma_alloc_from_coherent(dev, size, handle, &memory))
		return memory;
	return __dma_alloc(dev, size, handle, gfp,
			   pgprot_dmacoherent(pgprot_kernel));
}