From: Will Deacon Date: Wed, 21 Aug 2019 11:38:15 +0000 (+0100) Subject: iommu/arm-smmu-v3: Don't issue CMD_SYNC for zero-length invalidations X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=7314ca8699e1defd6f2883f203c0e828a4f51f9f;p=linux.git iommu/arm-smmu-v3: Don't issue CMD_SYNC for zero-length invalidations Calling arm_smmu_tlb_inv_range() with a size of zero, perhaps due to an empty 'iommu_iotlb_gather' structure, should be a NOP. Elide the CMD_SYNC when there is no invalidation to be performed. Signed-off-by: Will Deacon --- diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c index 2be11a11bb8bf..b7b3b0ff8ed6a 100644 --- a/drivers/iommu/arm-smmu-v3.c +++ b/drivers/iommu/arm-smmu-v3.c @@ -1977,6 +1977,9 @@ static void arm_smmu_tlb_inv_range(unsigned long iova, size_t size, }, }; + if (!size) + return; + if (smmu_domain->stage == ARM_SMMU_DOMAIN_S1) { cmd.opcode = CMDQ_OP_TLBI_NH_VA; cmd.tlbi.asid = smmu_domain->s1_cfg.cd.asid;