Commit c74f41bb authored by Paolo Bonzini's avatar Paolo Bonzini Committed by Gleb Natapov
Browse files

x86: fix migration from pre-version 12



On KVM, the KVM_SET_XSAVE would be executed with a 0 xstate_bv,
and not restore anything.

Since FP and SSE data are always valid, set them in xstate_bv at reset
time.  In fact, that value is the same that KVM_GET_XSAVE returns on
pre-XSAVE hosts.

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarGleb Natapov <gleb@redhat.com>
parent a684f3cf
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2405,6 +2405,7 @@ static void x86_cpu_reset(CPUState *s)
    env->fpuc = 0x37f;

    env->mxcsr = 0x1f80;
    env->xstate_bv = XSTATE_FP | XSTATE_SSE;

    env->pat = 0x0007040600070406ULL;
    env->msr_ia32_misc_enable = MSR_IA32_MISC_ENABLE_DEFAULT;
+4 −0
Original line number Diff line number Diff line
@@ -380,6 +380,10 @@

#define MSR_VM_HSAVE_PA                 0xc0010117

#define XSTATE_FP                       1
#define XSTATE_SSE                      2
#define XSTATE_YMM                      4

/* CPUID feature words */
typedef enum FeatureWord {
    FEAT_1_EDX,         /* CPUID[1].EDX */