iommu/arm-smmu: Ensure that page-table updates are visible before TLBI
authorWill Deacon <will.deacon@arm.com>
Mon, 1 Oct 2018 11:42:49 +0000 (12:42 +0100)
committerWill Deacon <will.deacon@arm.com>
Mon, 1 Oct 2018 12:01:31 +0000 (13:01 +0100)
commit7d321bd3542500caf125249f44dc37cb4e738013
treedbe77095cb6a0166aeb7ce0abe9a6f6c885695d7
parent07fdef34d2be6811f00c6f9e4e2a1483cf86696c
iommu/arm-smmu: Ensure that page-table updates are visible before TLBI

The IO-pgtable code relies on the driver TLB invalidation callbacks to
ensure that all page-table updates are visible to the IOMMU page-table
walker.

In the case that the page-table walker is cache-coherent, we cannot rely
on an implicit DSB from the DMA-mapping code, so we must ensure that we
execute a DSB in our tlb_add_flush() callback prior to triggering the
invalidation.

Cc: <stable@vger.kernel.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Fixes: 2df7a25ce4a7 ("iommu/arm-smmu: Clean up DMA API usage")
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/arm-smmu.c