diff options
author | 2014-07-24 15:34:54 +0200 | |
---|---|---|
committer | 2015-01-16 18:03:04 +0200 | |
commit | 9eca0a5875403027e10d68dd162df9790d42839e (patch) | |
tree | 326e9b753adea430efb831ce5a5881dd3395432c /drivers/iommu | |
parent | iommu/ipmmu-vmsa: Flush P[UM]D entry before freeing the child page table (diff) | |
download | linux-9eca0a5875403027e10d68dd162df9790d42839e.tar.gz linux-9eca0a5875403027e10d68dd162df9790d42839e.tar.bz2 linux-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.c | 4 |
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; } |