• Stefano Stabellini's avatar
    xen: introduce xen_alloc/free_coherent_pages · d6fe76c5
    Stefano Stabellini authored
    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: default avatarStefano 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.
    d6fe76c5
page-coherent.h 676 Bytes