kvm: x86: Don't modify MSR_PLATFORM_INFO on vCPU reset
authorJim Mattson <jmattson@google.com>
Tue, 30 Oct 2018 19:20:21 +0000 (12:20 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 14 Dec 2018 17:00:01 +0000 (18:00 +0100)
If userspace has provided a different value for this MSR (e.g with the
turbo bits set), the userspace-provided value should survive a vCPU
reset. For backwards compatibility, MSR_PLATFORM_INFO is initialized
in kvm_arch_vcpu_setup.

Signed-off-by: Jim Mattson <jmattson@google.com>
Reviewed-by: Drew Schmitt <dasch@google.com>
Cc: Abhiroop Dabral <adabral@paloaltonetworks.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c

index 18b7817af2bca68b6d4fc58ca9a45e4968df6cab..1a10e564174dc3ba270709578f495c45e5bca269 100644 (file)
@@ -8658,6 +8658,7 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm,
 
 int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu)
 {
+       vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
        kvm_vcpu_mtrr_init(vcpu);
        vcpu_load(vcpu);
        kvm_vcpu_reset(vcpu, false);
@@ -8760,7 +8761,6 @@ void kvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
                kvm_pmu_reset(vcpu);
                vcpu->arch.smbase = 0x30000;
 
-               vcpu->arch.msr_platform_info = MSR_PLATFORM_INFO_CPUID_FAULT;
                vcpu->arch.msr_misc_features_enables = 0;
 
                vcpu->arch.xcr0 = XFEATURE_MASK_FP;