iommu/amd: Implement iommu_ops->def_domain_type call-back
authorJoerg Roedel <jroedel@suse.de>
Wed, 29 Apr 2020 13:36:41 +0000 (15:36 +0200)
committerJoerg Roedel <jroedel@suse.de>
Tue, 5 May 2020 12:36:12 +0000 (14:36 +0200)
Implement the new def_domain_type call-back for the AMD IOMMU driver.

Signed-off-by: Joerg Roedel <jroedel@suse.de>
Link: https://lore.kernel.org/r/20200429133712.31431-4-joro@8bytes.org
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd_iommu.c

index 20cce36..73b4f84 100644 (file)
@@ -2661,6 +2661,20 @@ static void amd_iommu_iotlb_sync(struct iommu_domain *domain,
        amd_iommu_flush_iotlb_all(domain);
 }
 
+static int amd_iommu_def_domain_type(struct device *dev)
+{
+       struct iommu_dev_data *dev_data;
+
+       dev_data = get_dev_data(dev);
+       if (!dev_data)
+               return 0;
+
+       if (dev_data->iommu_v2)
+               return IOMMU_DOMAIN_IDENTITY;
+
+       return 0;
+}
+
 const struct iommu_ops amd_iommu_ops = {
        .capable = amd_iommu_capable,
        .domain_alloc = amd_iommu_domain_alloc,
@@ -2680,6 +2694,7 @@ const struct iommu_ops amd_iommu_ops = {
        .pgsize_bitmap  = AMD_IOMMU_PGSIZES,
        .flush_iotlb_all = amd_iommu_flush_iotlb_all,
        .iotlb_sync = amd_iommu_iotlb_sync,
+       .def_domain_type = amd_iommu_def_domain_type,
 };
 
 /*****************************************************************************