From: Zhen Lei <thunder.leizhen@huawei.com> To: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>, Robin Murphy <robin.murphy@arm.com>, Will Deacon <will.deacon@arm.com>, Joerg Roedel <joro@8bytes.org>, linux-arm-kernel <linux-arm-kernel@lists.infradead.org>, iommu <iommu@lists.linux-foundation.org>, linux-kernel <linux-kernel@vger.kernel.org> Cc: Zhen Lei <thunder.leizhen@huawei.com> Subject: [PATCH v3 1/6] iommu/arm-smmu-v3: fix the implementation of flush_iotlb_all hook Date: Thu, 12 Jul 2018 14:18:27 +0800 [thread overview] Message-ID: <1531376312-2192-2-git-send-email-thunder.leizhen@huawei.com> (raw) In-Reply-To: <1531376312-2192-1-git-send-email-thunder.leizhen@huawei.com> .flush_iotlb_all can not just wait for previous tlbi operations to be completed, but should also invalid all TLBs of the related domain. Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> --- drivers/iommu/arm-smmu-v3.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c index 1d64710..4402187 100644 --- a/drivers/iommu/arm-smmu-v3.c +++ b/drivers/iommu/arm-smmu-v3.c @@ -1770,6 +1770,14 @@ static int arm_smmu_map(struct iommu_domain *domain, unsigned long iova, return ops->unmap(ops, iova, size); } +static void arm_smmu_flush_iotlb_all(struct iommu_domain *domain) +{ + struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); + + if (smmu_domain->smmu) + arm_smmu_tlb_inv_context(smmu_domain); +} + static void arm_smmu_iotlb_sync(struct iommu_domain *domain) { struct arm_smmu_device *smmu = to_smmu_domain(domain)->smmu; @@ -1998,7 +2006,7 @@ static void arm_smmu_put_resv_regions(struct device *dev, .map = arm_smmu_map, .unmap = arm_smmu_unmap, .map_sg = default_iommu_map_sg, - .flush_iotlb_all = arm_smmu_iotlb_sync, + .flush_iotlb_all = arm_smmu_flush_iotlb_all, .iotlb_sync = arm_smmu_iotlb_sync, .iova_to_phys = arm_smmu_iova_to_phys, .add_device = arm_smmu_add_device, -- 1.8.3
WARNING: multiple messages have this Message-ID (diff)
From: thunder.leizhen@huawei.com (Zhen Lei) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 1/6] iommu/arm-smmu-v3: fix the implementation of flush_iotlb_all hook Date: Thu, 12 Jul 2018 14:18:27 +0800 [thread overview] Message-ID: <1531376312-2192-2-git-send-email-thunder.leizhen@huawei.com> (raw) In-Reply-To: <1531376312-2192-1-git-send-email-thunder.leizhen@huawei.com> .flush_iotlb_all can not just wait for previous tlbi operations to be completed, but should also invalid all TLBs of the related domain. Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> --- drivers/iommu/arm-smmu-v3.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c index 1d64710..4402187 100644 --- a/drivers/iommu/arm-smmu-v3.c +++ b/drivers/iommu/arm-smmu-v3.c @@ -1770,6 +1770,14 @@ static int arm_smmu_map(struct iommu_domain *domain, unsigned long iova, return ops->unmap(ops, iova, size); } +static void arm_smmu_flush_iotlb_all(struct iommu_domain *domain) +{ + struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain); + + if (smmu_domain->smmu) + arm_smmu_tlb_inv_context(smmu_domain); +} + static void arm_smmu_iotlb_sync(struct iommu_domain *domain) { struct arm_smmu_device *smmu = to_smmu_domain(domain)->smmu; @@ -1998,7 +2006,7 @@ static void arm_smmu_put_resv_regions(struct device *dev, .map = arm_smmu_map, .unmap = arm_smmu_unmap, .map_sg = default_iommu_map_sg, - .flush_iotlb_all = arm_smmu_iotlb_sync, + .flush_iotlb_all = arm_smmu_flush_iotlb_all, .iotlb_sync = arm_smmu_iotlb_sync, .iova_to_phys = arm_smmu_iova_to_phys, .add_device = arm_smmu_add_device, -- 1.8.3
next prev parent reply other threads:[~2018-07-12 6:19 UTC|newest] Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-07-12 6:18 [PATCH v3 0/6] add non-strict mode support for arm-smmu-v3 Zhen Lei 2018-07-12 6:18 ` Zhen Lei 2018-07-12 6:18 ` Zhen Lei [this message] 2018-07-12 6:18 ` [PATCH v3 1/6] iommu/arm-smmu-v3: fix the implementation of flush_iotlb_all hook Zhen Lei 2018-07-12 6:18 ` [PATCH v3 2/6] iommu/dma: add support for non-strict mode Zhen Lei 2018-07-12 6:18 ` Zhen Lei 2018-07-24 22:01 ` Robin Murphy 2018-07-24 22:01 ` Robin Murphy 2018-07-24 22:01 ` Robin Murphy 2018-07-26 4:15 ` Leizhen (ThunderTown) 2018-07-26 4:15 ` Leizhen (ThunderTown) 2018-07-26 4:15 ` Leizhen (ThunderTown) 2018-07-12 6:18 ` [PATCH v3 3/6] iommu/amd: use default branch to deal with all non-supported capabilities Zhen Lei 2018-07-12 6:18 ` Zhen Lei 2018-07-12 6:18 ` Zhen Lei 2018-07-12 6:18 ` [PATCH v3 4/6] iommu/io-pgtable-arm: add support for non-strict mode Zhen Lei 2018-07-12 6:18 ` Zhen Lei 2018-07-24 22:25 ` Robin Murphy 2018-07-24 22:25 ` Robin Murphy 2018-07-26 7:20 ` Leizhen (ThunderTown) 2018-07-26 7:20 ` Leizhen (ThunderTown) 2018-07-26 14:35 ` Robin Murphy 2018-07-26 14:35 ` Robin Murphy 2018-08-06 1:32 ` Yang, Shunyong 2018-08-06 1:32 ` Yang, Shunyong 2018-08-06 1:32 ` Yang, Shunyong 2018-08-14 8:33 ` Leizhen (ThunderTown) 2018-08-14 8:33 ` Leizhen (ThunderTown) 2018-08-14 8:33 ` Leizhen (ThunderTown) 2018-08-14 8:35 ` Will Deacon 2018-08-14 8:35 ` Will Deacon 2018-08-14 8:35 ` Will Deacon 2018-08-14 10:02 ` Robin Murphy 2018-08-14 10:02 ` Robin Murphy 2018-08-15 1:43 ` Yang, Shunyong 2018-08-15 1:43 ` Yang, Shunyong 2018-08-15 1:43 ` Yang, Shunyong 2018-08-15 7:33 ` Will Deacon 2018-08-15 7:33 ` Will Deacon 2018-08-15 7:33 ` Will Deacon 2018-08-15 7:35 ` Will Deacon 2018-08-15 7:35 ` Will Deacon 2018-08-15 7:35 ` Will Deacon 2018-08-16 0:43 ` Yang, Shunyong 2018-08-16 0:43 ` Yang, Shunyong 2018-08-16 0:43 ` Yang, Shunyong 2018-07-12 6:18 ` [PATCH v3 5/6] iommu/arm-smmu-v3: " Zhen Lei 2018-07-12 6:18 ` Zhen Lei 2018-07-12 6:18 ` [PATCH v3 6/6] iommu/arm-smmu-v3: add bootup option "iommu_strict_mode" Zhen Lei 2018-07-12 6:18 ` Zhen Lei 2018-07-24 22:46 ` Robin Murphy 2018-07-24 22:46 ` Robin Murphy 2018-07-26 7:41 ` Leizhen (ThunderTown) 2018-07-26 7:41 ` Leizhen (ThunderTown) 2018-07-24 21:51 ` [PATCH v3 0/6] add non-strict mode support for arm-smmu-v3 Robin Murphy 2018-07-24 21:51 ` Robin Murphy 2018-07-26 3:44 ` Leizhen (ThunderTown) 2018-07-26 3:44 ` Leizhen (ThunderTown) 2018-07-26 3:44 ` Leizhen (ThunderTown) 2018-07-26 14:16 ` Robin Murphy 2018-07-26 14:16 ` Robin Murphy 2018-07-27 2:49 ` Leizhen (ThunderTown) 2018-07-27 2:49 ` Leizhen (ThunderTown) 2018-07-27 9:37 ` Will Deacon 2018-07-27 9:37 ` Will Deacon 2018-07-27 9:37 ` Will Deacon
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1531376312-2192-2-git-send-email-thunder.leizhen@huawei.com \ --to=thunder.leizhen@huawei.com \ --cc=iommu@lists.linux-foundation.org \ --cc=jean-philippe.brucker@arm.com \ --cc=joro@8bytes.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=robin.murphy@arm.com \ --cc=will.deacon@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.