mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
iommu: arm-smmu: skip tlb flush during unmap
With fragmented physical memory, mappings are generated of lower granule. This increases the unmap latency of large buffers. When not supporting demand paging in smmu, unmap can defer the invalidation till next map. This change aggregates invalidations across multiple unmaps till a new mapping is created on that context. The new mapping can be using an iova previously unmapped hence the stale TLB can cause issue. Hence invalidate the TLB during map. Change-Id: I1d64227ca075067a43075729ba26be684126d679 Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
This commit is contained in:
parent
aa01bdf5fa
commit
c765bad7cc
1 changed files with 0 additions and 1 deletions
|
|
@ -3288,7 +3288,6 @@ static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
|
|||
arm_smmu_rpm_get(smmu);
|
||||
spin_lock_irqsave(&smmu_domain->cb_lock, flags);
|
||||
ret = ops->unmap(ops, iova, size, gather);
|
||||
arm_smmu_deferred_flush(smmu_domain);
|
||||
spin_unlock_irqrestore(&smmu_domain->cb_lock, flags);
|
||||
arm_smmu_rpm_put(smmu);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue