diff options
author | Lan Tianyu <tianyu.lan@intel.com> | 2016-02-25 23:15:12 +0800 |
---|---|---|
committer | Eduardo Habkost <ehabkost@redhat.com> | 2016-03-14 17:26:06 -0300 |
commit | 492a4c94be8853aa378a5dd8a1f8e3181754aabd (patch) | |
tree | 600aadd1c1dd4f312b4215342811bdb5bdcb9819 /target-i386 | |
parent | 4467c6c118b85133846785f517e5733112e811b4 (diff) | |
download | qemu-492a4c94be8853aa378a5dd8a1f8e3181754aabd.tar.gz qemu-492a4c94be8853aa378a5dd8a1f8e3181754aabd.tar.bz2 qemu-492a4c94be8853aa378a5dd8a1f8e3181754aabd.zip |
kvm: Remove x2apic feature from CPU model when kernel_irqchip is off
x2apic feature is in the kvm_default_props and automatically added to all
CPU models when KVM is enabled. But userspace devices don't support x2apic
which can't be enabled without the in-kernel irqchip. It will trigger
warning of "host doesn't support requested feature: CPUID.01H:ECX.x2apic
[bit 21]" when kernel_irqchip is off. This patch is to fix it via removing
x2apic feature when kernel_irqchip is off.
Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'target-i386')
-rw-r--r-- | target-i386/cpu.c | 4 |
1 files changed, 4 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); } |