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