This looks similar to my "[PATCH] kvm: nVMX: Restore exit qual for VM-entry failure due to MSR loading" On Thu, Jul 12, 2018 at 4:35 AM, Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> wrote: > Commit e79f245ddec1 ("X86/KVM: Properly update 'tsc_offset' to represent > the running guest") introduced a regression in enter_vmx_non_root_mode(): > when nested_vmx_load_msr() fails exit_qualification needs to point to the > entry number we failed to validate. Intel's SDM states: > > "VM-entry failure due to MSR loading. The exit qualification is loaded to > indicate which entry in the VM-entry MSR-load area caused the problem (1 > for the first entry, 2 for the second, etc.)." > > Fixes: e79f245ddec1 ("X86/KVM: Properly update 'tsc_offset' to represent the running guest") > Reported-by: Wanpeng Li <kernellwp@xxxxxxxxx> > Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> > --- > arch/x86/kvm/vmx.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 65968649b365..be468c822892 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -11720,8 +11720,10 @@ static int enter_vmx_non_root_mode(struct kvm_vcpu *vcpu) > msr_entry_idx = nested_vmx_load_msr(vcpu, > vmcs12->vm_entry_msr_load_addr, > vmcs12->vm_entry_msr_load_count); > - if (msr_entry_idx) > + if (msr_entry_idx) { > + exit_qual = msr_entry_idx; > goto fail; > + } > > /* > * Note no nested_vmx_succeed or nested_vmx_fail here. At this point > -- > 2.14.4 >