diff options
-rw-r--r-- | target-i386/cpu.c | 4 | ||||
-rw-r--r-- | target-i386/kvm.c | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 0f38d1eae3..3ea6b294a4 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -2132,6 +2132,10 @@ static void x86_cpu_load_def(X86CPU *cpu, X86CPUDefinition *def, Error **errp) /* Special cases not set in the X86CPUDefinition structs: */ if (kvm_enabled()) { + if (!kvm_irqchip_in_kernel()) { + x86_cpu_change_kvm_default("x2apic", "off"); + } + x86_cpu_apply_props(cpu, kvm_default_props); } diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 7974acb399..08d6444741 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -639,6 +639,7 @@ int kvm_arch_init_vcpu(CPUState *cs) if (cpu->hyperv_crash && has_msr_hv_crash) { c->edx |= HV_X64_GUEST_CRASH_MSR_AVAILABLE; } + c->edx |= HV_X64_CPU_DYNAMIC_PARTITIONING_AVAILABLE; if (cpu->hyperv_reset && has_msr_hv_reset) { c->eax |= HV_X64_MSR_RESET_AVAILABLE; } |