• Zhen Lei's avatar
    iommu/arm-smmu-v3: Implement flush_iotlb_all hook · 07fdef34
    Zhen Lei authored
    
    
    .flush_iotlb_all is currently stubbed to arm_smmu_iotlb_sync() since the
    only time it would ever need to actually do anything is for callers
    doing their own explicit batching, e.g.:
    
    	iommu_unmap_fast(domain, ...);
    	iommu_unmap_fast(domain, ...);
    	iommu_iotlb_flush_all(domain, ...);
    
    where since io-pgtable still issues the TLBI commands implicitly in the
    unmap instead of implementing .iotlb_range_add, the "flush" only needs
    to ensure completion of those already-in-flight invalidations.
    
    However, we're about to start using it in anger with flush queues, so
    let's get a proper implementation wired up.
    Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
    Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
    [rm: document why it wasn't a bug]
    Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    07fdef34
arm-smmu-v3.c 75.3 KB