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

[Xen-changelog] [xen-unstable] Fix PAE-mode HVM guests with the new shadow code.



# HG changeset patch
# User Steven Hand <steven@xxxxxxxxxxxxx>
# Node ID 28824bd2701c59ae6d6ecda80043986f73d199f2
# Parent  f790546ecfda03193a4b8983f7bb6b0f65924603
Fix PAE-mode HVM guests with the new shadow code.

Signed-off-by: Steven Hand <steven@xxxxxxxxxxxxx>
---
 xen/arch/x86/mm/shadow/multi.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff -r f790546ecfda -r 28824bd2701c xen/arch/x86/mm/shadow/multi.c
--- a/xen/arch/x86/mm/shadow/multi.c    Mon Aug 28 20:22:56 2006 +0100
+++ b/xen/arch/x86/mm/shadow/multi.c    Mon Aug 28 21:25:13 2006 +0100
@@ -2543,6 +2543,16 @@ static int validate_gl3e(struct vcpu *v,
 
     perfc_incrc(shadow_validate_gl3e_calls);
 
+#if (SHADOW_PAGING_LEVELS == 3) && (GUEST_PAGING_LEVELS == 3)
+    {
+        /* If we've updated a subshadow which is unreferenced then 
+           we don't care what value is being written - bail. */
+        struct pae_l3_bookkeeping *info = sl3p_to_info(se); 
+        if(!info->refcount)
+            return result; 
+    }
+#endif
+
     if ( guest_l3e_get_flags(*new_gl3e) & _PAGE_PRESENT )
     {
         gfn_t gl2gfn = guest_l3e_get_gfn(*new_gl3e);
@@ -2634,7 +2644,7 @@ static int validate_gl1e(struct vcpu *v,
 
 
 /**************************************************************************/
-/* Functions which translate and install a the shadows of arbitrary guest 
+/* Functions which translate and install the shadows of arbitrary guest 
  * entries that we have just seen the guest write. */
 
 
@@ -2934,7 +2944,7 @@ static int sh_page_fault(struct vcpu *v,
              && shadow_vcpu_mode_translate(v) 
              && mmio_space(gfn_to_paddr(gfn)) );
 
-    /* For MMIO, the shadow holds the *gfn*; for normal accesses, if holds 
+    /* For MMIO, the shadow holds the *gfn*; for normal accesses, it holds 
      * the equivalent mfn. */
     if ( mmio ) 
         gmfn = _mfn(gfn_x(gfn));

_______________________________________________
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®.