|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] xen: arm: Ensure HCR_EL2.RW is set correctly when building dom0
commit b3cbe129d07ac9a41175491fdd3c882641588350
Author: Ian Campbell <ian.campbell@xxxxxxxxxx>
AuthorDate: Thu Oct 10 15:43:45 2013 +0100
Commit: Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Thu Oct 24 14:25:11 2013 +0100
xen: arm: Ensure HCR_EL2.RW is set correctly when building dom0
copy_to_user and friends rely on this, since the address transalation
functions (guest VA -> MFN) will truncate VA to the appropriate size.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Julien Grall <julien.grall@xxxxxxxxxx>
---
xen/arch/arm/domain_build.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 4e1badf..c644be2 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -955,6 +955,13 @@ int construct_dom0(struct domain *d)
/* The following loads use the domain's p2m */
p2m_load_VTTBR(d);
+#ifdef CONFIG_ARM_64
+ d->arch.type = kinfo.type;
+ if ( is_pv32_domain(d) )
+ WRITE_SYSREG(READ_SYSREG(HCR_EL2) & ~HCR_RW, HCR_EL2);
+ else
+ WRITE_SYSREG(READ_SYSREG(HCR_EL2) | HCR_RW, HCR_EL2);
+#endif
kernel_load(&kinfo);
/* initrd_load will fix up the fdt, so call it before dtb_load */
@@ -970,9 +977,6 @@ int construct_dom0(struct domain *d)
regs->pc = (register_t)kinfo.entry;
-#ifdef CONFIG_ARM_64
- d->arch.type = kinfo.type;
-#endif
if ( is_pv32_domain(d) )
{
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |