[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [HVM] Fix the HVM hypercall issue when paging is not enabled yet on 64bit host.



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID b127e557ee74e02834c76e61c1c55b33de808e4c
# Parent  7ed73735fd30038abbd2d4ba55ac7541eb35a5e4
[HVM] Fix the HVM hypercall issue when paging is not enabled yet on 64bit host.
Signed-off-by: Xin Li <xin.b.li@xxxxxxxxx>
---
 xen/arch/x86/shadow_public.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff -r 7ed73735fd30 -r b127e557ee74 xen/arch/x86/shadow_public.c
--- a/xen/arch/x86/shadow_public.c      Wed Aug 16 11:53:37 2006 +0100
+++ b/xen/arch/x86/shadow_public.c      Wed Aug 16 11:55:26 2006 +0100
@@ -1104,6 +1104,9 @@ int __shadow_mode_enable(struct domain *
 {
     struct vcpu *v;
     int new_modes = (mode & ~d->arch.shadow_mode);
+#if defined(CONFIG_PAGING_LEVELS)
+    int initial_paging_levels = 3;
+#endif
 
     // Gotta be adding something to call this function.
     ASSERT(new_modes);
@@ -1112,8 +1115,10 @@ int __shadow_mode_enable(struct domain *
     ASSERT(!(d->arch.shadow_mode & ~mode));
 
 #if defined(CONFIG_PAGING_LEVELS)
-    if(!shadow_set_guest_paging_levels(d,
-                                       CONFIG_PAGING_LEVELS)) {
+    if (  CONFIG_PAGING_LEVELS == 2 )
+        initial_paging_levels = CONFIG_PAGING_LEVELS;
+    if ( !shadow_set_guest_paging_levels(d,
+                                         initial_paging_levels) ) {
         printk("Unsupported guest paging levels\n");
         domain_crash_synchronous(); /* need to take a clean path */
     }

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.