aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iommu/arm-smmu.c
diff options
context:
space:
mode:
authorRobin Murphy <robin.murphy@arm.com>2015-12-07 13:18:53 -0500
committerWill Deacon <will.deacon@arm.com>2015-12-17 07:05:34 -0500
commit06c610e8f32ba2fe41d57e1718611c2ec5024878 (patch)
tree1255fe5238bac58717ff0bbf56beb48625153021 /drivers/iommu/arm-smmu.c
parent2eb97c78613082f308c0b39366c034cb589b8ee9 (diff)
iommu/io-pgtable: Indicate granule for TLB maintenance
IOMMU hardware with range-based TLB maintenance commands can work happily with the iova and size arguments passed via the tlb_add_flush callback, but for IOMMUs which require separate commands per entry in the range, it is not straightforward to infer the necessary granularity when it comes to issuing the actual commands. Add an additional argument indicating the granularity for the benefit of drivers needing to know, and update the ARM LPAE code appropriately (for non-leaf invalidations we currently just assume the worst-case page granularity rather than walking the table to check). Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'drivers/iommu/arm-smmu.c')
-rw-r--r--drivers/iommu/arm-smmu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index 6ed169bcb39d..7e04bf5640ae 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -582,7 +582,7 @@ static void arm_smmu_tlb_inv_context(void *cookie)
582} 582}
583 583
584static void arm_smmu_tlb_inv_range_nosync(unsigned long iova, size_t size, 584static void arm_smmu_tlb_inv_range_nosync(unsigned long iova, size_t size,
585 bool leaf, void *cookie) 585 size_t granule, bool leaf, void *cookie)
586{ 586{
587 struct arm_smmu_domain *smmu_domain = cookie; 587 struct arm_smmu_domain *smmu_domain = cookie;
588 struct arm_smmu_cfg *cfg = &smmu_domain->cfg; 588 struct arm_smmu_cfg *cfg = &smmu_domain->cfg;