xen/arm: introduce phys/dma translations in xen_dma_sync_for_*
authorStefano Stabellini <stefano.stabellini@xilinx.com>
Fri, 10 Jul 2020 22:34:26 +0000 (15:34 -0700)
committerJuergen Gross <jgross@suse.com>
Tue, 4 Aug 2020 05:53:52 +0000 (07:53 +0200)
commit63f0620cc552c4cd5bb2747f77efce407487cb12
tree41d7126e31220ba1b44ebc3e32786052dfa643db
parent91ffe4ad534ab2262cbcfb339c5ae190c7ac0e7c
xen/arm: introduce phys/dma translations in xen_dma_sync_for_*

xen_dma_sync_for_cpu, xen_dma_sync_for_device, xen_arch_need_swiotlb are
getting called passing dma addresses. On some platforms dma addresses
could be different from physical addresses. Before doing any operations
on these addresses we need to convert them back to physical addresses
using dma_to_phys.

Move the arch_sync_dma_for_cpu and arch_sync_dma_for_device calls from
xen_dma_sync_for_cpu/device to swiotlb-xen.c, and add a call dma_to_phys
to do address translations there.

dma_cache_maint is fixed by the next patch.

Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
Tested-by: Corey Minyard <cminyard@mvista.com>
Tested-by: Roman Shaposhnik <roman@zededa.com>
Acked-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20200710223427.6897-10-sstabellini@kernel.org
Signed-off-by: Juergen Gross <jgross@suse.com>
arch/arm/xen/mm.c
drivers/xen/swiotlb-xen.c
include/xen/swiotlb-xen.h