debuggers.hg
changeset 13685:19a600376688
Don't clobber vcpu flags when getting vcpu context.
Signed-off-by: Keir Fraser <keir@xensource.com>
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));