On 12/10/24 03:24, Matthew Rosato wrote:
In addition to IOMMU_DOMAIN_DMA, def_domain_type can also return IOMMU_DOMAIN_DMA_FQ when applicable, else flush queues will never be used. Signed-off-by: Matthew Rosato<mjrosato@xxxxxxxxxxxxx> --- include/linux/iommu.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 05279109c732..d0da1918d2de 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -585,6 +585,7 @@ iommu_copy_struct_from_full_user_array(void *kdst, size_t kdst_entry_size, * @def_domain_type: device default domain type, return value: * - IOMMU_DOMAIN_IDENTITY: must use an identity domain * - IOMMU_DOMAIN_DMA: must use a dma domain + * - IOMMU_DOMAIN_DMA_FQ: dma domain with batch invalidation
In which case must an iommu driver return IOMMU_DOMAIN_DMA_FQ? The flush queue is a policy of "when and how to synchronize the IOTLB" in dma-iommu.c. The iommu driver actually has no need to understand such policy. By the way, "dma domain" in this comment is a bit confusing, it reads better if we make it like: - IOMMU_DOMAIN_IDENTITY: must use an identity domain - IOMMU_DOMAIN_DMA: must use a paging domain Thanks, baolu