ia64/xen-unstable

changeset 13661:19a600376688

Don't clobber vcpu flags when getting vcpu context.
Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@localhost.localdomain
date Fri Jan 26 17:33:58 2007 +0000 (2007-01-26)
parents aae5932afc6d
children 32fd32bbf78d
files xen/arch/x86/domctl.c
line diff
     1.1 --- a/xen/arch/x86/domctl.c	Fri Jan 26 16:56:26 2007 +0000
     1.2 +++ b/xen/arch/x86/domctl.c	Fri Jan 26 17:33:58 2007 +0000
     1.3 @@ -410,7 +410,6 @@ void arch_get_info_guest(struct vcpu *v,
     1.4  #else
     1.5  #define c(fld) (c.nat->fld)
     1.6  #endif
     1.7 -    unsigned long flags;
     1.8  
     1.9      if ( !IS_COMPAT(v->domain) )
    1.10          memcpy(c.nat, &v->arch.guest_context, sizeof(*c.nat));
    1.11 @@ -444,12 +443,11 @@ void arch_get_info_guest(struct vcpu *v,
    1.12          c(user_regs.eflags |= v->arch.iopl << 12);
    1.13      }
    1.14  
    1.15 -    flags = 0;
    1.16 +    c(flags &= ~(VGCF_i387_valid|VGCF_in_kernel));
    1.17      if ( test_bit(_VCPUF_fpu_initialised, &v->vcpu_flags) )
    1.18 -        flags |= VGCF_i387_valid;
    1.19 +        c(flags |= VGCF_i387_valid);
    1.20      if ( guest_kernel_mode(v, &v->arch.guest_context.user_regs) )
    1.21 -        flags |= VGCF_in_kernel;
    1.22 -    c(flags = flags);
    1.23 +        c(flags |= VGCF_in_kernel);
    1.24  
    1.25      if ( !IS_COMPAT(v->domain) )
    1.26          c.nat->ctrlreg[3] = xen_pfn_to_cr3(pagetable_get_pfn(v->arch.guest_table));