From: Oleksandr Tyshchenko <olekstysh@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: wei.liu2@citrix.com, julien.grall@arm.com,
sstabellini@kernel.org, ian.jackson@eu.citrix.com,
jbeulich@suse.com
Subject: [PATCH v1 05/10] iommu/arm: Re-define iommu_use_hap_pt(d) as iommu_hap_pt_share
Date: Wed, 10 May 2017 17:03:09 +0300 [thread overview]
Message-ID: <1494424994-26232-6-git-send-email-olekstysh@gmail.com> (raw)
In-Reply-To: <1494424994-26232-1-git-send-email-olekstysh@gmail.com>
From: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
Not every integrated into ARM SoCs IOMMU can share page tables
with the CPU and as result the iommu_use_hap_pt(d) is not always true.
Reuse x86's iommu_hap_pt_share flag to indicate whether the IOMMU
page table is shared or not.
Now all IOMMU drivers on ARM are able to change this flag
according to their possibilities like x86-variants do.
Therefore set iommu_hap_pt_share flag for SMMU because it always shares
page table with the CPU.
Signed-off-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
---
xen/drivers/passthrough/arm/smmu.c | 3 +++
xen/include/asm-arm/iommu.h | 7 +++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c
index 527a592..86ee12a 100644
--- a/xen/drivers/passthrough/arm/smmu.c
+++ b/xen/drivers/passthrough/arm/smmu.c
@@ -2870,6 +2870,9 @@ static __init int arm_smmu_dt_init(struct dt_device_node *dev,
platform_features &= smmu->features;
+ /* Always share P2M table between the CPU and the SMMU */
+ iommu_hap_pt_share = true;
+
return 0;
}
diff --git a/xen/include/asm-arm/iommu.h b/xen/include/asm-arm/iommu.h
index 57d9b1e..10a6f23 100644
--- a/xen/include/asm-arm/iommu.h
+++ b/xen/include/asm-arm/iommu.h
@@ -20,8 +20,11 @@ struct arch_iommu
void *priv;
};
-/* Always share P2M Table between the CPU and the IOMMU */
-#define iommu_use_hap_pt(d) (1)
+/*
+ * The ARM domain always has a P2M table, but not every integrated into
+ * ARM SoCs IOMMU can use it as page table.
+ */
+#define iommu_use_hap_pt(d) (iommu_hap_pt_share)
const struct iommu_ops *iommu_get_ops(void);
void __init iommu_set_ops(const struct iommu_ops *ops);
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2017-05-10 14:03 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-10 14:03 [PATCH v1 00/10] "Non-shared" IOMMU support on ARM Oleksandr Tyshchenko
2017-05-10 14:03 ` [PATCH v1 01/10] xen/device-tree: Add dt_count_phandle_with_args helper Oleksandr Tyshchenko
2017-05-10 14:50 ` Jan Beulich
2017-05-10 15:06 ` Oleksandr Tyshchenko
2017-05-10 14:03 ` [PATCH v1 02/10] iommu: Add extra order argument to the IOMMU APIs and platform callbacks Oleksandr Tyshchenko
2017-05-12 14:23 ` Jan Beulich
2017-05-12 15:50 ` Oleksandr Tyshchenko
2017-05-12 16:17 ` Jan Beulich
2017-05-12 16:25 ` Oleksandr Tyshchenko
2017-05-15 7:22 ` Jan Beulich
2017-05-15 10:43 ` Oleksandr Tyshchenko
2017-05-15 12:33 ` Jan Beulich
2017-05-16 12:48 ` Oleksandr Tyshchenko
2017-05-16 13:11 ` Jan Beulich
2017-05-17 15:28 ` Oleksandr Tyshchenko
2017-05-17 15:39 ` Jan Beulich
2017-05-17 18:49 ` Oleksandr Tyshchenko
2017-05-10 14:03 ` [PATCH v1 03/10] xen/arm: p2m: Add helper to convert p2m type to IOMMU flags Oleksandr Tyshchenko
2017-05-10 14:03 ` [PATCH v1 04/10] xen/arm: p2m: Update IOMMU mapping whenever possible if page table is not shared Oleksandr Tyshchenko
2017-05-11 11:24 ` Julien Grall
2017-05-11 14:19 ` Oleksandr Tyshchenko
2017-05-10 14:03 ` Oleksandr Tyshchenko [this message]
2017-05-11 11:28 ` [PATCH v1 05/10] iommu/arm: Re-define iommu_use_hap_pt(d) as iommu_hap_pt_share Julien Grall
2017-05-11 14:38 ` Oleksandr Tyshchenko
2017-05-11 17:58 ` Julien Grall
2017-05-11 18:21 ` Oleksandr Tyshchenko
2017-05-10 14:03 ` [PATCH v1 06/10] iommu: Add extra use_iommu argument to iommu_domain_init() Oleksandr Tyshchenko
2017-05-12 14:31 ` Jan Beulich
2017-05-12 17:00 ` Oleksandr Tyshchenko
2017-05-15 7:27 ` Jan Beulich
2017-05-17 19:52 ` Julien Grall
2017-05-18 8:38 ` Jan Beulich
2017-05-18 17:41 ` Oleksandr Tyshchenko
2017-05-19 6:30 ` Jan Beulich
2017-05-19 8:56 ` Oleksandr Tyshchenko
2017-05-10 14:03 ` [PATCH v1 07/10] iommu/arm: Add alloc_page_table platform callback Oleksandr Tyshchenko
2017-05-11 11:38 ` Julien Grall
2017-05-11 14:00 ` Oleksandr Tyshchenko
2017-05-11 18:06 ` Julien Grall
2017-05-11 18:43 ` Oleksandr Tyshchenko
2017-05-12 14:36 ` Jan Beulich
2017-05-10 14:03 ` [PATCH v1 08/10] iommu: Split iommu_hwdom_init() into arch specific parts Oleksandr Tyshchenko
2017-05-12 14:41 ` Jan Beulich
2017-05-12 15:25 ` Oleksandr Tyshchenko
2017-05-12 15:34 ` Jan Beulich
2017-05-15 7:20 ` Jan Beulich
2017-05-15 7:42 ` Julien Grall
2017-05-15 8:19 ` Jan Beulich
2017-05-15 11:45 ` Julien Grall
2017-05-15 12:43 ` Jan Beulich
2017-05-17 15:45 ` Oleksandr Tyshchenko
2017-05-17 16:01 ` Jan Beulich
2017-05-17 18:51 ` Oleksandr Tyshchenko
2017-05-17 20:30 ` Julien Grall
2017-05-18 8:53 ` Jan Beulich
2017-05-18 18:06 ` Oleksandr Tyshchenko
2017-05-19 6:33 ` Jan Beulich
2017-05-10 14:03 ` [PATCH v1 09/10] xen/arm: Add use_iommu flag to xen_arch_domainconfig Oleksandr Tyshchenko
2017-05-11 11:42 ` Julien Grall
2017-05-11 14:04 ` Oleksandr Tyshchenko
2017-05-10 14:03 ` [PATCH v1 10/10] xen/arm: domain_build: Don't expose the "iommus" property to the guest Oleksandr Tyshchenko
2017-05-11 11:58 ` Julien Grall
2017-05-11 14:15 ` Oleksandr Tyshchenko
2017-05-11 18:07 ` Julien Grall
2017-05-11 18:19 ` Oleksandr Tyshchenko
2017-05-11 18:19 ` Julien Grall
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=1494424994-26232-6-git-send-email-olekstysh@gmail.com \
--to=olekstysh@gmail.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=julien.grall@arm.com \
--cc=sstabellini@kernel.org \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).