|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-changelog
[Xen-changelog] [xen-unstable] [XEN] Clear just the _PAGE_RW bit	when sh
 
# HG changeset patch
# User Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
# Node ID 4cd39f7f090dc6603f042ca7a43d8f55a81617b8
# Parent  0af1ba62a14b4eaf1c0687d855edc7307edb21ba
[XEN] Clear just the _PAGE_RW bit when shooting writeable mappings
Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx>
---
 xen/arch/x86/mm/shadow/multi.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)
diff -r 0af1ba62a14b -r 4cd39f7f090d xen/arch/x86/mm/shadow/multi.c
--- a/xen/arch/x86/mm/shadow/multi.c    Tue Nov 28 11:47:28 2006 +0000
+++ b/xen/arch/x86/mm/shadow/multi.c    Tue Nov 28 12:24:24 2006 +0000
@@ -3664,7 +3664,8 @@ int sh_remove_write_access(struct vcpu *
              && (flags & _PAGE_RW) 
              && (mfn_x(shadow_l1e_get_mfn(*sl1e)) == mfn_x(readonly_mfn)) )
         {
-            (void) shadow_set_l1e(v, sl1e, shadow_l1e_empty(), sl1mfn);
+            shadow_l1e_t ro_sl1e = shadow_l1e_remove_flags(*sl1e, _PAGE_RW);
+            (void) shadow_set_l1e(v, sl1e, ro_sl1e, sl1mfn);
 #if SHADOW_OPTIMIZATIONS & SHOPT_WRITABLE_HEURISTIC 
             /* Remember the last shadow that we shot a writeable mapping in */
             v->arch.shadow.last_writeable_pte_smfn = mfn_x(base_sl1mfn);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread> |  
- [Xen-changelog] [xen-unstable] [XEN] Clear just the _PAGE_RW bit	when shooting writeable mappings,
Xen patchbot-unstable <=
  
 |  
  
 | 
    | 
  
  
    |   | 
    |