All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] iommu/arm-smmu: Return IOVA in iova_to_phys when SMMU is bypassed
@ 2017-04-25  9:57 ` sunil.kovvuri at gmail.com
  0 siblings, 0 replies; 21+ messages in thread
From: sunil.kovvuri-Re5JQEeQqe8AvxtiuMwx3w @ 2017-04-25  9:57 UTC (permalink / raw)
  To: will.deacon-5wv7dgnIgG8,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
  Cc: robert.richter-YGCgFSpz5w/QT0dZR+AlfA, Sunil Goutham,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r

From: Sunil Goutham <sgoutham-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>

For software initiated address translation, when domain type is
IOMMU_DOMAIN_IDENTITY i.e SMMU is bypassed, mimic HW behavior
i.e return the same IOVA as translated address.

This patch is an extension to Will Deacon's patchset
"Implement SMMU passthrough using the default domain".

Signed-off-by: Sunil Goutham <sgoutham-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>
---

V2
- As per Will's suggestion applied fix to SMMUv3 driver as well.

 drivers/iommu/arm-smmu-v3.c | 3 +++
 drivers/iommu/arm-smmu.c    | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c
index 05b4592..d412bdd 100644
--- a/drivers/iommu/arm-smmu-v3.c
+++ b/drivers/iommu/arm-smmu-v3.c
@@ -1714,6 +1714,9 @@ arm_smmu_iova_to_phys(struct iommu_domain *domain, dma_addr_t iova)
 	struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
 	struct io_pgtable_ops *ops = smmu_domain->pgtbl_ops;
 
+	if (domain->type == IOMMU_DOMAIN_IDENTITY)
+		return iova;
+
 	if (!ops)
 		return 0;
 
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index bfab4f7..81088cd 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -1459,6 +1459,9 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
 	struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
 	struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
 
+	if (domain->type == IOMMU_DOMAIN_IDENTITY)
+		return iova;
+
 	if (!ops)
 		return 0;
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2017-04-26 12:03 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-25  9:57 [PATCH v2] iommu/arm-smmu: Return IOVA in iova_to_phys when SMMU is bypassed sunil.kovvuri-Re5JQEeQqe8AvxtiuMwx3w
2017-04-25  9:57 ` sunil.kovvuri
2017-04-25  9:57 ` sunil.kovvuri at gmail.com
     [not found] ` <1493114272-30093-1-git-send-email-sunil.kovvuri-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-26  9:12   ` Sunil Kovvuri
2017-04-26  9:12     ` Sunil Kovvuri
2017-04-26  9:12     ` Sunil Kovvuri
2017-04-26 10:01   ` Will Deacon
2017-04-26 10:01     ` Will Deacon
2017-04-26 10:01     ` Will Deacon
     [not found]     ` <20170426100150.GE21744-5wv7dgnIgG8@public.gmane.org>
2017-04-26 10:31       ` Joerg Roedel
2017-04-26 10:31         ` Joerg Roedel
2017-04-26 10:31         ` Joerg Roedel
2017-04-26 10:43       ` Sunil Kovvuri
2017-04-26 10:43         ` Sunil Kovvuri
2017-04-26 10:43         ` Sunil Kovvuri
     [not found]         ` <CA+sq2Ce2UVi04VtD4KLDsNk2baN1kq_vN2KOrEt9a_cB0gJ0vw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-04-26 11:36           ` Will Deacon
2017-04-26 11:36             ` Will Deacon
2017-04-26 11:36             ` Will Deacon
     [not found]             ` <20170426113651.GI21744-5wv7dgnIgG8@public.gmane.org>
2017-04-26 12:03               ` Sunil Kovvuri
2017-04-26 12:03                 ` Sunil Kovvuri
2017-04-26 12:03                 ` Sunil Kovvuri

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.