mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 13:06:59 +02:00
KVM: nVMX: Make an event request when pending an MTF nested VM-Exit
Set KVM_REQ_EVENT when MTF becomes pending to ensure that KVM will run
through inject_pending_event() and thus vmx_check_nested_events() prior
to re-entering the guest.
MTF currently works by virtue of KVM's hack that calls
kvm_check_nested_events() from kvm_vcpu_running(), but that hack will
be removed in the near future. Until that call is removed, the patch
introduces no real functional change.
Fixes: 5ef8acbdd6 ("KVM: nVMX: Emulate MTF when performing instruction emulation")
Cc: stable@vger.kernel.org
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20220921003201.1441511-3-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5b4ac1a1b7
commit
2ea89c7f7f
|
|
@ -6632,6 +6632,9 @@ static int vmx_set_nested_state(struct kvm_vcpu *vcpu,
|
|||
if (ret)
|
||||
goto error_guest_mode;
|
||||
|
||||
if (vmx->nested.mtf_pending)
|
||||
kvm_make_request(KVM_REQ_EVENT, vcpu);
|
||||
|
||||
return 0;
|
||||
|
||||
error_guest_mode:
|
||||
|
|
|
|||
|
|
@ -1665,10 +1665,12 @@ static void vmx_update_emulated_instruction(struct kvm_vcpu *vcpu)
|
|||
(!vcpu->arch.exception.pending ||
|
||||
vcpu->arch.exception.vector == DB_VECTOR) &&
|
||||
(!vcpu->arch.exception_vmexit.pending ||
|
||||
vcpu->arch.exception_vmexit.vector == DB_VECTOR))
|
||||
vcpu->arch.exception_vmexit.vector == DB_VECTOR)) {
|
||||
vmx->nested.mtf_pending = true;
|
||||
else
|
||||
kvm_make_request(KVM_REQ_EVENT, vcpu);
|
||||
} else {
|
||||
vmx->nested.mtf_pending = false;
|
||||
}
|
||||
}
|
||||
|
||||
static int vmx_skip_emulated_instruction(struct kvm_vcpu *vcpu)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user