iommu/arm-smmu: provide option to dsb macro when publishing tables
authorWill Deacon <will.deacon@arm.com>
Wed, 5 Feb 2014 23:35:47 +0000 (23:35 +0000)
committerWill Deacon <will.deacon@arm.com>
Mon, 24 Feb 2014 19:09:46 +0000 (19:09 +0000)
On coherent systems, publishing new page tables to the SMMU walker is
achieved with a dsb instruction. In fact, this can be a dsb(ishst) which
also provides the mandatory barrier option for arm64.

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/arm-smmu.c

index 83297fe..1da5b41 100644 (file)
@@ -678,7 +678,7 @@ static void arm_smmu_flush_pgtable(struct arm_smmu_device *smmu, void *addr,
 
        /* Ensure new page tables are visible to the hardware walker */
        if (smmu->features & ARM_SMMU_FEAT_COHERENT_WALK) {
-               dsb();
+               dsb(ishst);
        } else {
                /*
                 * If the SMMU can't walk tables in the CPU caches, treat them