xen/arm: use hypercall to flush caches in map_page
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Fri, 21 Nov 2014 11:05:39 +0000 (11:05 +0000)
committerDavid Vrabel <david.vrabel@citrix.com>
Thu, 4 Dec 2014 12:41:52 +0000 (12:41 +0000)
commit3567258d281b5b515d5165ed23851d9f84087e7d
tree69da5f20e5354507e3219eaeb6e72b7e5e93f58d
parenta0f2dee0cd651efb5fac6a1d35b0a14460ebcdd4
xen/arm: use hypercall to flush caches in map_page

In xen_dma_map_page, if the page is a local page, call the native
map_page dma_ops. If the page is foreign, call __xen_dma_map_page that
issues any required cache maintenane operations via hypercall.

The reason for doing this is that the native dma_ops map_page could
allocate buffers than need to be freed. If the page is foreign we don't
call the native unmap_page dma_ops function, resulting in a memory leak.

Suggested-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm/include/asm/xen/page-coherent.h
arch/arm/xen/mm32.c