mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 08:08:54 +00:00
KVM: nVMX: Read EXIT_QUAL and INTR_INFO only when needed for nested exit
Read vmcs.EXIT_QUALIFICATION and vmcs.VM_EXIT_INTR_INFO only if the VM-Exit is being reflected to L1 now that they are no longer passed directly to the kvm_nested_vmexit tracepoint. No functional change intended. Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Message-Id: <20200923201349.16097-8-sean.j.christopherson@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
cc167bd7ee
commit
02f1965ff8
1 changed files with 2 additions and 3 deletions
|
@ -5934,9 +5934,6 @@ bool nested_vmx_reflect_vmexit(struct kvm_vcpu *vcpu)
|
|||
goto reflect_vmexit;
|
||||
}
|
||||
|
||||
exit_intr_info = vmx_get_intr_info(vcpu);
|
||||
exit_qual = vmx_get_exit_qual(vcpu);
|
||||
|
||||
trace_kvm_nested_vmexit(exit_reason, vcpu, KVM_ISA_VMX);
|
||||
|
||||
/* If L0 (KVM) wants the exit, it trumps L1's desires. */
|
||||
|
@ -5953,12 +5950,14 @@ bool nested_vmx_reflect_vmexit(struct kvm_vcpu *vcpu)
|
|||
* need to be synthesized by querying the in-kernel LAPIC, but external
|
||||
* interrupts are never reflected to L1 so it's a non-issue.
|
||||
*/
|
||||
exit_intr_info = vmx_get_intr_info(vcpu);
|
||||
if (is_exception_with_error_code(exit_intr_info)) {
|
||||
struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
|
||||
|
||||
vmcs12->vm_exit_intr_error_code =
|
||||
vmcs_read32(VM_EXIT_INTR_ERROR_CODE);
|
||||
}
|
||||
exit_qual = vmx_get_exit_qual(vcpu);
|
||||
|
||||
reflect_vmexit:
|
||||
nested_vmx_vmexit(vcpu, exit_reason, exit_intr_info, exit_qual);
|
||||
|
|
Loading…
Reference in a new issue