v1 -> v2:
Use the lowest bit of the io_pgtable_ops.unmap's iova parameter to pass the 
strict mode:
0, IOMMU_STRICT;
1, IOMMU_NON_STRICT;
Treat 0 as IOMMU_STRICT, so that the unmap operation can compatible with
other IOMMUs which still use strict mode. In other words, this patch series
will not impact other IOMMU drivers. I tried add a new quirk 
IO_PGTABLE_QUIRK_NON_STRICT
in io_pgtable_cfg.quirks, but it can not pass the strict mode of the domain 
from SMMUv3
driver to io-pgtable module. 

Add a new member domain_non_strict in struct iommu_dma_cookie, this member will 
only be
initialized when the related domain and IOMMU driver support non-strict mode.

Zhen Lei (5):
  iommu/arm-smmu-v3: fix the implementation of flush_iotlb_all hook
  iommu/dma: add support for non-strict mode
  iommu/amd: use default branch to deal with all non-supported
    capabilities
  iommu/io-pgtable-arm: add support for non-strict mode
  iommu/arm-smmu-v3: add support for non-strict mode

 drivers/iommu/amd_iommu.c      |  4 +---
 drivers/iommu/arm-smmu-v3.c    | 16 +++++++++++++---
 drivers/iommu/dma-iommu.c      | 25 +++++++++++++++++++++++++
 drivers/iommu/io-pgtable-arm.c | 23 ++++++++++++++---------
 include/linux/iommu.h          |  7 +++++++
 5 files changed, 60 insertions(+), 15 deletions(-)

-- 
1.8.3


_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to