i386: do not migrate MSR_SMI_COUNT on machine types <2.12
MSR_SMI_COUNT started being migrated in QEMU 2.12. Do not migrate it on older machine types, or the subsection causes a load failure for guests that use SMM. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
6d9dd5fb9d
commit
990e0be260
@ -317,6 +317,10 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
|
|||||||
#define PC_COMPAT_2_11 \
|
#define PC_COMPAT_2_11 \
|
||||||
HW_COMPAT_2_11 \
|
HW_COMPAT_2_11 \
|
||||||
{\
|
{\
|
||||||
|
.driver = TYPE_X86_CPU,\
|
||||||
|
.property = "x-migrate-smi-count",\
|
||||||
|
.value = "off",\
|
||||||
|
},{\
|
||||||
.driver = "Skylake-Server" "-" TYPE_X86_CPU,\
|
.driver = "Skylake-Server" "-" TYPE_X86_CPU,\
|
||||||
.property = "clflushopt",\
|
.property = "clflushopt",\
|
||||||
.value = "off",\
|
.value = "off",\
|
||||||
|
@ -5435,6 +5435,8 @@ static Property x86_cpu_properties[] = {
|
|||||||
false),
|
false),
|
||||||
DEFINE_PROP_BOOL("vmware-cpuid-freq", X86CPU, vmware_cpuid_freq, true),
|
DEFINE_PROP_BOOL("vmware-cpuid-freq", X86CPU, vmware_cpuid_freq, true),
|
||||||
DEFINE_PROP_BOOL("tcg-cpuid", X86CPU, expose_tcg, true),
|
DEFINE_PROP_BOOL("tcg-cpuid", X86CPU, expose_tcg, true),
|
||||||
|
DEFINE_PROP_BOOL("x-migrate-smi-count", X86CPU, migrate_smi_count,
|
||||||
|
true),
|
||||||
/*
|
/*
|
||||||
* lecacy_cache defaults to true unless the CPU model provides its
|
* lecacy_cache defaults to true unless the CPU model provides its
|
||||||
* own cache information (see x86_cpu_load_def()).
|
* own cache information (see x86_cpu_load_def()).
|
||||||
|
@ -1379,6 +1379,7 @@ struct X86CPU {
|
|||||||
bool expose_kvm;
|
bool expose_kvm;
|
||||||
bool expose_tcg;
|
bool expose_tcg;
|
||||||
bool migratable;
|
bool migratable;
|
||||||
|
bool migrate_smi_count;
|
||||||
bool max_features; /* Enable all supported features automatically */
|
bool max_features; /* Enable all supported features automatically */
|
||||||
uint32_t apic_id;
|
uint32_t apic_id;
|
||||||
|
|
||||||
|
@ -400,7 +400,7 @@ static bool msr_smi_count_needed(void *opaque)
|
|||||||
X86CPU *cpu = opaque;
|
X86CPU *cpu = opaque;
|
||||||
CPUX86State *env = &cpu->env;
|
CPUX86State *env = &cpu->env;
|
||||||
|
|
||||||
return env->msr_smi_count != 0;
|
return cpu->migrate_smi_count && env->msr_smi_count != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const VMStateDescription vmstate_msr_smi_count = {
|
static const VMStateDescription vmstate_msr_smi_count = {
|
||||||
|
Loading…
Reference in New Issue
Block a user