iommu/amd: Init unity mappings only for dma_ops domains
[firefly-linux-kernel-4.4.55.git] / drivers / iommu / amd_iommu.c
index a2d054f96fda296dfa20f4373710b10c94fd844c..e54e335d082b32d29f1d764a35fd0d729a67f8c4 100644 (file)
@@ -352,9 +352,11 @@ static void init_iommu_group(struct device *dev)
        if (!domain)
                goto out;
 
-       dma_domain = to_pdomain(domain)->priv;
+       if (to_pdomain(domain)->flags == PD_DMA_OPS_MASK) {
+               dma_domain = to_pdomain(domain)->priv;
+               init_unity_mappings_for_device(dev, dma_domain);
+       }
 
-       init_unity_mappings_for_device(dev, dma_domain);
 out:
        iommu_group_put(group);
 }