Commit 9dbe6cf9 authored by Paolo Bonzini's avatar Paolo Bonzini

KVM: x86: expose MSR_TSC_AUX to userspace

If we do not do this, it is not properly saved and restored across
migration.  Windows notices due to its self-protection mechanisms,
and is very upset about it (blue screen of death).

Cc: Radim Krcmar <rkrcmar@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent db397571
...@@ -951,7 +951,7 @@ static u32 msrs_to_save[] = { ...@@ -951,7 +951,7 @@ static u32 msrs_to_save[] = {
MSR_CSTAR, MSR_KERNEL_GS_BASE, MSR_SYSCALL_MASK, MSR_LSTAR, MSR_CSTAR, MSR_KERNEL_GS_BASE, MSR_SYSCALL_MASK, MSR_LSTAR,
#endif #endif
MSR_IA32_TSC, MSR_IA32_CR_PAT, MSR_VM_HSAVE_PA, MSR_IA32_TSC, MSR_IA32_CR_PAT, MSR_VM_HSAVE_PA,
MSR_IA32_FEATURE_CONTROL, MSR_IA32_BNDCFGS MSR_IA32_FEATURE_CONTROL, MSR_IA32_BNDCFGS, MSR_TSC_AUX,
}; };
static unsigned num_msrs_to_save; static unsigned num_msrs_to_save;
...@@ -4028,16 +4028,17 @@ static void kvm_init_msr_list(void) ...@@ -4028,16 +4028,17 @@ static void kvm_init_msr_list(void)
/* /*
* Even MSRs that are valid in the host may not be exposed * Even MSRs that are valid in the host may not be exposed
* to the guests in some cases. We could work around this * to the guests in some cases.
* in VMX with the generic MSR save/load machinery, but it
* is not really worthwhile since it will really only
* happen with nested virtualization.
*/ */
switch (msrs_to_save[i]) { switch (msrs_to_save[i]) {
case MSR_IA32_BNDCFGS: case MSR_IA32_BNDCFGS:
if (!kvm_x86_ops->mpx_supported()) if (!kvm_x86_ops->mpx_supported())
continue; continue;
break; break;
case MSR_TSC_AUX:
if (!kvm_x86_ops->rdtscp_supported())
continue;
break;
default: default:
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment