[RFC 0/7] Convert the Intel iommu driver to the dma-ops api

From: Tom Murphy
Date: Sat May 04 2019 - 09:24:50 EST


Convert the intel iommu driver to the dma-ops api so that we can remove a bunch of repeated code.

This patchset depends on the "iommu/vt-d: Delegate DMA domain to generic iommu" and
"iommu/amd: Convert the AMD iommu driver to the dma-iommu api" patch sets which haven't
yet merged so this is just a RFC to get some feedback before I do more testing.

Tom Murphy (7):
iommu/vt-d: Set the dma_ops per device so we can remove the
iommu_no_mapping code
iommu/vt-d: Remove iova handling code from non-dma ops path
iommu: improve iommu iotlb flushing
iommu/dma-iommu: Handle freelists in the dma-iommu api path
iommu/dma-iommu: add wrapper for iommu_dma_free_cpu_cached_iovas
iommu/vt-d: convert the intel iommu driver to the dma-iommu ops api
iommu/vt-d: Always set DMA_PTE_READ if the iommu doens't support zero
length reads

drivers/iommu/Kconfig | 1 +
drivers/iommu/amd_iommu.c | 14 +-
drivers/iommu/arm-smmu-v3.c | 3 +-
drivers/iommu/arm-smmu.c | 2 +-
drivers/iommu/dma-iommu.c | 48 ++-
drivers/iommu/exynos-iommu.c | 3 +-
drivers/iommu/intel-iommu.c | 605 +++++---------------------------
drivers/iommu/iommu.c | 21 +-
drivers/iommu/ipmmu-vmsa.c | 2 +-
drivers/iommu/msm_iommu.c | 2 +-
drivers/iommu/mtk_iommu.c | 3 +-
drivers/iommu/mtk_iommu_v1.c | 3 +-
drivers/iommu/omap-iommu.c | 2 +-
drivers/iommu/qcom_iommu.c | 2 +-
drivers/iommu/rockchip-iommu.c | 2 +-
drivers/iommu/s390-iommu.c | 3 +-
drivers/iommu/tegra-gart.c | 2 +-
drivers/iommu/tegra-smmu.c | 2 +-
drivers/vfio/vfio_iommu_type1.c | 3 +-
include/linux/dma-iommu.h | 3 +
include/linux/intel-iommu.h | 1 -
include/linux/iommu.h | 24 +-
22 files changed, 175 insertions(+), 576 deletions(-)

--
2.17.1