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

[Xen-changelog] [xen-unstable] [XEN] Fix page-fault handler to fall back to shadow-mode fault path if



# HG changeset patch
# User kfraser@xxxxxxxxxxxxxxxxxxxxx
# Node ID c39d7d8379ad48a0ddc3b28f2db6e1d5d4f84da8
# Parent  41130540891e4c167aa2105b314b5068da27b267
[XEN] Fix page-fault handler to fall back to shadow-mode fault path if
writable pagetable logic fails to fix up a fault.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/arch/x86/traps.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff -r 41130540891e -r c39d7d8379ad xen/arch/x86/traps.c
--- a/xen/arch/x86/traps.c      Thu Aug 17 19:11:14 2006 +0100
+++ b/xen/arch/x86/traps.c      Thu Aug 17 19:16:01 2006 +0100
@@ -888,11 +888,12 @@ static int fixup_page_fault(unsigned lon
         return (spurious_page_fault(addr, regs) ? EXCRET_not_a_fault : 0);
     }
 
-    if ( likely(VM_ASSIST(d, VMASST_TYPE_writable_pagetables)) &&
+    if ( VM_ASSIST(d, VMASST_TYPE_writable_pagetables) &&
          guest_kernel_mode(v, regs) &&
          ((regs->error_code & (PGERR_write_access|PGERR_page_present)) ==
-          (PGERR_write_access|PGERR_page_present)) )
-        return ptwr_do_page_fault(d, addr, regs) ? EXCRET_fault_fixed : 0;
+          (PGERR_write_access|PGERR_page_present)) &&
+         ptwr_do_page_fault(d, addr, regs) )
+        return EXCRET_fault_fixed;
 
     if ( shadow2_mode_enabled(d) )
         return shadow2_fault(addr, regs);

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