Mailing List Archive

[xen-unstable] Don't clobber vcpu flags when getting vcpu context.
# HG changeset patch
# User kaf24@localhost.localdomain
# Date 1169832838 0
# Node ID 19a600376688577f0692eac022f05bc6df30ce93
# Parent aae5932afc6d2d8d8dd277223daf08ecff2f28e9
Don't clobber vcpu flags when getting vcpu context.
Signed-off-by: Keir Fraser <keir@xensource.com>
---
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@lists.xensource.com
http://lists.xensource.com/xen-changelog