iommu/vt-d: Fix misuse of iommu_domain_identity_map()
authorLu Baolu <baolu.lu@linux.intel.com>
Mon, 22 Jun 2020 23:13:45 +0000 (07:13 +0800)
committerJoerg Roedel <jroedel@suse.de>
Tue, 23 Jun 2020 08:08:32 +0000 (10:08 +0200)
The iommu_domain_identity_map() helper takes start/end PFN as arguments.
Fix a misuse case where the start and end addresses are passed.

Fixes: e70b081c6f376 ("iommu/vt-d: Remove IOVA handling code from the non-dma_ops path")
Reported-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Cc: Tom Murphy <murphyt7@tcd.ie>
Link: https://lore.kernel.org/r/20200622231345.29722-7-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel/iommu.c

index f16bf63..d759e72 100644 (file)
@@ -2701,7 +2701,9 @@ static int __init si_domain_init(int hw)
                                    end >> agaw_to_width(si_domain->agaw)))
                                continue;
 
-                       ret = iommu_domain_identity_map(si_domain, start, end);
+                       ret = iommu_domain_identity_map(si_domain,
+                                       mm_to_dma_pfn(start >> PAGE_SHIFT),
+                                       mm_to_dma_pfn(end >> PAGE_SHIFT));
                        if (ret)
                                return ret;
                }