iommu/arm-smmu: Return 0 on unmap failure
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Fri, 28 Feb 2014 15:37:10 +0000 (15:37 +0000)
committerWill Deacon <will.deacon@arm.com>
Tue, 15 Apr 2014 11:19:33 +0000 (12:19 +0100)
The IOMMU core expects the unmap operation to return the number of bytes
that have been unmapped or 0 on failure, a negative return value being
treated like a number of bytes.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/arm-smmu.c

index 8b89e33..69d001a 100644 (file)
@@ -1499,7 +1499,7 @@ static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
 
        ret = arm_smmu_handle_mapping(smmu_domain, iova, 0, size, 0);
        arm_smmu_tlb_inv_context(&smmu_domain->root_cfg);
-       return ret ? ret : size;
+       return ret ? 0 : size;
 }
 
 static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,