From: Sean Christopherson Date: Tue, 10 Dec 2019 22:44:14 +0000 (-0800) Subject: KVM: x86: Ensure all logical CPUs have consistent reserved cr4 bits X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=f1cdecf5807b1a91829a2dc4f254bfe6bafd4776;p=people%2Froyger%2Flinux.git KVM: x86: Ensure all logical CPUs have consistent reserved cr4 bits Check the current CPU's reserved cr4 bits against the mask calculated for the boot CPU to ensure consistent behavior across all CPUs. Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini --- diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 8a907cd7b1e1..960b886e1e43 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -9461,6 +9461,13 @@ void kvm_arch_hardware_unsetup(void) int kvm_arch_check_processor_compat(void) { + struct cpuinfo_x86 *c = &cpu_data(smp_processor_id()); + + WARN_ON(!irqs_disabled()); + + if (kvm_host_cr4_reserved_bits(c) != cr4_reserved_bits) + return -EIO; + return kvm_x86_ops->check_processor_compatibility(); }