diff options
author | Omer Peleg <[email protected]> | 2016-04-20 11:33:11 +0300 |
---|---|---|
committer | David Woodhouse <[email protected]> | 2016-04-20 15:05:56 -0400 |
commit | f5c0c08b1e0976cb493d503108f1b897ce58bc5d (patch) | |
tree | d2d9246fabfaddc9ba5de2b978c84c7dafe77512 | |
parent | aa4732406e1290dd18a8d2078977996c152a4be7 (diff) |
iommu/vt-d: correct flush_unmaps pfn usage
Change flush_unmaps() to correctly pass iommu_flush_iotlb_psi()
dma addresses. (x86_64 mm and dma have the same size for pages
at the moment, but this usage improves consistency.)
Signed-off-by: Omer Peleg <[email protected]>
[[email protected]: rebased and reworded the commit message]
Signed-off-by: Adam Morrison <[email protected]>
Reviewed-by: Shaohua Li <[email protected]>
Reviewed-by: Ben Serebrin <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
-rw-r--r-- | drivers/iommu/intel-iommu.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index a64b6f3b9a66..6aacfa4eee2a 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -3548,7 +3548,8 @@ static void flush_unmaps(struct deferred_flush_data *flush_data) /* On real hardware multiple invalidations are expensive */ if (cap_caching_mode(iommu->cap)) iommu_flush_iotlb_psi(iommu, domain, - iova->pfn_lo, iova_size(iova), + mm_to_dma_pfn(iova->pfn_lo), + mm_to_dma_pfn(iova_size(iova)), !freelist, 0); else { mask = ilog2(mm_to_dma_pfn(iova_size(iova))); |