iommu/vt-d: Unnecessary to handle default identity domain
authorLu Baolu <baolu.lu@linux.intel.com>
Wed, 15 Jan 2020 03:03:59 +0000 (11:03 +0800)
committerJoerg Roedel <jroedel@suse.de>
Fri, 24 Jan 2020 14:32:54 +0000 (15:32 +0100)
The iommu default domain framework has been designed to take
care of setting identity default domain type. It's unnecessary
to handle this again in the VT-d driver. Hence, remove it.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel-iommu.c

index 47d023c..c0a983c 100644 (file)
@@ -387,7 +387,6 @@ static int intel_iommu_superpage = 1;
 static int iommu_identity_mapping;
 static int intel_no_bounce;
 
-#define IDENTMAP_ALL           1
 #define IDENTMAP_GFX           2
 #define IDENTMAP_AZALIA                4
 
@@ -3079,8 +3078,7 @@ static int device_def_domain_type(struct device *dev)
                        return IOMMU_DOMAIN_DMA;
        }
 
-       return (iommu_identity_mapping & IDENTMAP_ALL) ?
-                       IOMMU_DOMAIN_IDENTITY : 0;
+       return 0;
 }
 
 static void intel_iommu_init_qi(struct intel_iommu *iommu)
@@ -3424,9 +3422,6 @@ static int __init init_dmars(void)
                iommu->flush.flush_iotlb(iommu, 0, 0, 0, DMA_TLB_GLOBAL_FLUSH);
        }
 
-       if (iommu_default_passthrough())
-               iommu_identity_mapping |= IDENTMAP_ALL;
-
 #ifdef CONFIG_INTEL_IOMMU_BROKEN_GFX_WA
        dmar_map_gfx = 0;
 #endif
@@ -5038,7 +5033,7 @@ static int __init platform_optin_force_iommu(void)
         * map for all devices except those marked as being untrusted.
         */
        if (dmar_disabled)
-               iommu_identity_mapping |= IDENTMAP_ALL;
+               iommu_set_default_passthrough(false);
 
        dmar_disabled = 0;
        no_iommu = 0;