• R
    iommu/io-pgtable-arm: Centralise sync points · 87a91b15
    Robin Murphy 提交于
    With all current users now opted in to DMA API operations, make the
    iommu_dev pointer mandatory, rendering the flush_pgtable callback
    redundant for cache maintenance. However, since the DMA calls could be
    nops in the case of a coherent IOMMU, we still need to ensure the page
    table updates are fully synchronised against a subsequent page table
    walk. In the unmap path, the TLB sync will usually need to do this
    anyway, so just cement that requirement; in the map path which may
    consist solely of cacheable memory writes (in the coherent case),
    insert an appropriate barrier at the end of the operation, and obviate
    the need to call flush_pgtable on every individual update for
    synchronisation.
    Signed-off-by: NRobin Murphy <robin.murphy@arm.com>
    [will: slight clarification to tlb_sync comment]
    Signed-off-by: NWill Deacon <will.deacon@arm.com>
    87a91b15
io-pgtable.h 4.5 KB