summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShuah Khan <shuahkh@osg.samsung.com>2015-01-17 02:47:19 +0300
committerJoerg Roedel <jroedel@suse.de>2015-01-19 17:19:31 +0300
commit6fd492fd746d9858a41dc85eef44bd627b809109 (patch)
tree0010c12f0fb4ce2d4b402b9dc6dfa1d0e9dadbef
parent0fb5fe874c42942e16c450ae05da453e13a1c09e (diff)
downloadlinux-6fd492fd746d9858a41dc85eef44bd627b809109.tar.xz
iommu: Fix trace_unmap() to report original iova
iommu_unmap() calls trace_unmap() with changed iova and original size. trace_unmap() should report original iova instead. Change iommu_unmap() to call trace_unmap() with original iova. Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> Reported-by: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
-rw-r--r--drivers/iommu/iommu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index f7718d73e984..d4c3db5abf25 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -1094,6 +1094,7 @@ size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size)
{
size_t unmapped_page, unmapped = 0;
unsigned int min_pagesz;
+ unsigned long orig_iova = iova;
if (unlikely(domain->ops->unmap == NULL ||
domain->ops->pgsize_bitmap == 0UL))
@@ -1133,7 +1134,7 @@ size_t iommu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size)
unmapped += unmapped_page;
}
- trace_unmap(iova, 0, size);
+ trace_unmap(orig_iova, 0, size);
return unmapped;
}
EXPORT_SYMBOL_GPL(iommu_unmap);