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

[Xen-changelog] [xen-unstable] Don't clobber vcpu flags when getting vcpu context.



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxxx
# Date 1169832838 0
# Node ID 19a600376688577f0692eac022f05bc6df30ce93
# Parent  aae5932afc6d2d8d8dd277223daf08ecff2f28e9
Don't clobber vcpu flags when getting vcpu context.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/arch/x86/domctl.c |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff -r aae5932afc6d -r 19a600376688 xen/arch/x86/domctl.c
--- a/xen/arch/x86/domctl.c     Fri Jan 26 16:56:26 2007 +0000
+++ b/xen/arch/x86/domctl.c     Fri Jan 26 17:33:58 2007 +0000
@@ -410,7 +410,6 @@ void arch_get_info_guest(struct vcpu *v,
 #else
 #define c(fld) (c.nat->fld)
 #endif
-    unsigned long flags;
 
     if ( !IS_COMPAT(v->domain) )
         memcpy(c.nat, &v->arch.guest_context, sizeof(*c.nat));
@@ -444,12 +443,11 @@ void arch_get_info_guest(struct vcpu *v,
         c(user_regs.eflags |= v->arch.iopl << 12);
     }
 
-    flags = 0;
+    c(flags &= ~(VGCF_i387_valid|VGCF_in_kernel));
     if ( test_bit(_VCPUF_fpu_initialised, &v->vcpu_flags) )
-        flags |= VGCF_i387_valid;
+        c(flags |= VGCF_i387_valid);
     if ( guest_kernel_mode(v, &v->arch.guest_context.user_regs) )
-        flags |= VGCF_in_kernel;
-    c(flags = flags);
+        c(flags |= VGCF_in_kernel);
 
     if ( !IS_COMPAT(v->domain) )
         c.nat->ctrlreg[3] = 
xen_pfn_to_cr3(pagetable_get_pfn(v->arch.guest_table));

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