xen: introduce xen_alloc/free_coherent_pages
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Wed, 9 Oct 2013 17:18:14 +0000 (17:18 +0000)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Wed, 9 Oct 2013 17:18:14 +0000 (17:18 +0000)
commitd6fe76c58c358498b91d21f0ca8054f6aa6e672d
tree7a351e4ddefe07831842757ddd32b46156bc69a4
parent58c8b26909f287c72a7a39d26f800ffe61e01bf3
xen: introduce xen_alloc/free_coherent_pages

xen_swiotlb_alloc_coherent needs to allocate a coherent buffer for cpu
and devices. On native x86 is sufficient to call __get_free_pages in
order to get a coherent buffer, while on ARM (and potentially ARM64) we
need to call the native dma_ops->alloc implementation.

Introduce xen_alloc_coherent_pages to abstract the arch specific buffer
allocation.

Similarly introduce xen_free_coherent_pages to free a coherent buffer:
on x86 is simply a call to free_pages while on ARM and ARM64 is
arm_dma_ops.free.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Changes in v7:
- rename __get_dma_ops to __generic_dma_ops;
- call __generic_dma_ops(hwdev)->alloc/free on arm64 too.

Changes in v6:
- call __get_dma_ops to get the native dma_ops pointer on arm.
arch/arm/include/asm/xen/page-coherent.h [new file with mode: 0644]
arch/arm64/include/asm/xen/page-coherent.h [new file with mode: 0644]
arch/ia64/include/asm/xen/page-coherent.h [new file with mode: 0644]
arch/x86/include/asm/xen/page-coherent.h [new file with mode: 0644]