diff options
author | Sean Christopherson <[email protected]> | 2020-06-08 10:41:34 -0700 |
---|---|---|
committer | Borislav Petkov <[email protected]> | 2020-06-15 14:18:37 +0200 |
commit | 5d5103595e9e53048bb7e70ee2673c897ab38300 (patch) | |
tree | 733c865296305bee65d1f418f2a4816ead780237 /scripts/gdb/linux/timerlist.py | |
parent | 8e742aa79780b13cd300a42198c1a4cea9c89905 (diff) |
x86/cpu: Reinitialize IA32_FEAT_CTL MSR on BSP during wakeup
Reinitialize IA32_FEAT_CTL on the BSP during wakeup to handle the case
where firmware doesn't initialize or save/restore across S3. This fixes
a bug where IA32_FEAT_CTL is left uninitialized and results in VMXON
taking a #GP due to VMX not being fully enabled, i.e. breaks KVM.
Use init_ia32_feat_ctl() to "restore" IA32_FEAT_CTL as it already deals
with the case where the MSR is locked, and because APs already redo
init_ia32_feat_ctl() during suspend by virtue of the SMP boot flow being
used to reinitialize APs upon wakeup. Do the call in the early wakeup
flow to avoid dependencies in the syscore_ops chain, e.g. simply adding
a resume hook is not guaranteed to work, as KVM does VMXON in its own
resume hook, kvm_resume(), when KVM has active guests.
Fixes: 21bd3467a58e ("KVM: VMX: Drop initialization of IA32_FEAT_CTL MSR")
Reported-by: Brad Campbell <[email protected]>
Signed-off-by: Sean Christopherson <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
Reviewed-by: Liam Merwick <[email protected]>
Reviewed-by: Maxim Levitsky <[email protected]>
Tested-by: Brad Campbell <[email protected]>
Cc: [email protected] # v5.6
Link: https://lkml.kernel.org/r/[email protected]
Diffstat (limited to 'scripts/gdb/linux/timerlist.py')
0 files changed, 0 insertions, 0 deletions