• Will Deacon's avatar
    iommu/io-pgtable-arm: Remove redundant call to io_pgtable_tlb_sync() · f71da467
    Will Deacon authored
    Commit b6b65ca2 ("iommu/io-pgtable-arm: Add support for non-strict
    mode") added an unconditional call to io_pgtable_tlb_sync() immediately
    after the case where we replace a block entry with a table entry during
    an unmap() call. This is redundant, since the IOMMU API will call
    iommu_tlb_sync() on this path and the patch in question mentions this:
    
     | To save having to reason about it too much, make sure the invalidation
     | in arm_lpae_split_blk_unmap() just performs its own unconditional sync
     | to minimise the window in which we're technically violating the break-
     | before-make requirement on a live mapping. This might work out redundant
     | with an outer-level sync for strict unmaps, but we'll never be splitting
     | blocks on a DMA fastpath anyway.
    
    However, this sync gets in the way of deferred TLB invalidation for leaf
    entries and is at best a questionable, unproven hack. Remove it.
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    f71da467
io-pgtable-arm.c 32.3 KB