aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iommu
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2014-07-24 15:34:54 +0200
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2015-01-16 18:03:04 +0200
commit9eca0a5875403027e10d68dd162df9790d42839e (patch)
tree326e9b753adea430efb831ce5a5881dd3395432c /drivers/iommu
parentiommu/ipmmu-vmsa: Flush P[UM]D entry before freeing the child page table (diff)
downloadlinux-dev-9eca0a5875403027e10d68dd162df9790d42839e.tar.xz
linux-dev-9eca0a5875403027e10d68dd162df9790d42839e.zip
iommu/ipmmu-vmsa: Invalidate TLB after unmapping
The TLB must be invalidated after unmapping memory to remove stale TLB entries. this was supposed to be performed already, but a bug in the driver prevented the TLB invalidate function from being called. Fix it. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Diffstat (limited to 'drivers/iommu')
-rw-r--r--drivers/iommu/ipmmu-vmsa.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
index a32d237c0f22..3a61103ef108 100644
--- a/drivers/iommu/ipmmu-vmsa.c
+++ b/drivers/iommu/ipmmu-vmsa.c
@@ -785,7 +785,6 @@ static int ipmmu_clear_mapping(struct ipmmu_vmsa_domain *domain,
pud_t *pud;
pmd_t *pmd;
pte_t *pte;
- int ret = 0;
if (!pgd)
return -EINVAL;
@@ -847,8 +846,7 @@ static int ipmmu_clear_mapping(struct ipmmu_vmsa_domain *domain,
done:
spin_unlock_irqrestore(&domain->lock, flags);
- if (ret)
- ipmmu_tlb_invalidate(domain);
+ ipmmu_tlb_invalidate(domain);
return 0;
}