xen: swiotlb: Wire up map_resource callback
authorJohn Ernberg <john.ernberg@actia.se>
Mon, 12 May 2025 07:14:50 +0000 (07:14 +0000)
committerJuergen Gross <jgross@suse.com>
Fri, 23 May 2025 05:05:50 +0000 (07:05 +0200)
commit406251a408f51a5ff1b7d41a1d590b35aff5b0fa
treed716f298306265b38a75425765f58ac306849669
parenta5806cd506af5a7c19bcd596e4708b5c464bfd21
xen: swiotlb: Wire up map_resource callback

When running Xen on iMX8QXP, an Arm SoC without IOMMU, DMA performed via
its eDMA v3 DMA engine fail with a mapping error.

The eDMA performs DMA between RAM and MMIO space, and it's the MMIO side
that cannot be mapped.

MMIO->RAM DMA access cannot be bounce buffered if it would straddle a page
boundary and on Xen the MMIO space is 1:1 mapped for Arm, and x86 PV Dom0.
Cases where MMIO space is not 1:1 mapped, such as x86 PVH Dom0, requires an
IOMMU present to deal with the mapping.

Considering the above the map_resource callback can just be wired to the
existing dma_direct_map_resource() function.

There is nothing to do for unmap so the unmap callback is not needed.

Signed-off-by: John Ernberg <john.ernberg@actia.se>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
Message-ID: <20250512071440.3726697-1-john.ernberg@actia.se>
Signed-off-by: Juergen Gross <jgross@suse.com>
drivers/xen/swiotlb-xen.c