iommu/ipmmu-vmsa: Invalidate TLB after unmapping
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 24 Jul 2014 13:34:54 +0000 (15:34 +0200)
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Fri, 16 Jan 2015 16:03:04 +0000 (18:03 +0200)
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>
drivers/iommu/ipmmu-vmsa.c

index a32d237..3a61103 100644 (file)
@@ -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;
 }