• Robin Murphy's avatar
    iommu/arm-smmu: Invalidate TLBs properly · 75df1386
    Robin Murphy authored
    When invalidating an IOVA range potentially spanning multiple pages,
    such as when removing an entire intermediate-level table, we currently
    only issue an invalidation for the first IOVA of that range. Since the
    architecture specifies that address-based TLB maintenance operations
    target a single entry, an SMMU could feasibly retain live entries for
    subsequent pages within that unmapped range, which is not good.
    
    Make sure we hit every possible entry by iterating over the whole range
    at the granularity provided by the pagetable implementation.
    Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
    [will: added missing semicolons...]
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    75df1386
arm-smmu-v3.c 68.6 KB