diff options
-rw-r--r-- | xen/arch/x86/domain.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 7a07c06a35..a40a95077b 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -748,7 +748,9 @@ int arch_set_info_guest( v->arch.vgc_flags = flags; - memcpy(v->arch.fpu_ctxt, &c.nat->fpu_ctxt, sizeof(c.nat->fpu_ctxt)); + if ( flags & VGCF_I387_VALID ) + memcpy(v->arch.fpu_ctxt, &c.nat->fpu_ctxt, sizeof(c.nat->fpu_ctxt)); + if ( !compat ) { memcpy(&v->arch.user_regs, &c.nat->user_regs, sizeof(c.nat->user_regs)); |