{
struct vcpu_svm *svm = to_svm(vcpu);
bool block_nested_events =
- kvm_event_needs_reinjection(vcpu) || svm->nested.exit_required ||
- svm->nested.nested_run_pending;
+ kvm_event_needs_reinjection(vcpu) || svm->nested.nested_run_pending;
if (vcpu->arch.exception.pending) {
if (block_nested_events)
if (npt_enabled)
vcpu->arch.cr3 = svm->vmcb->save.cr3;
- if (unlikely(svm->nested.exit_required)) {
- nested_svm_vmexit(svm);
- svm->nested.exit_required = false;
-
- return 1;
- }
-
if (is_guest_mode(vcpu)) {
int vmexit;
svm->vmcb->save.rip = vcpu->arch.regs[VCPU_REGS_RIP];
/*
- * A vmexit emulation is required before the vcpu can be executed
- * again.
- */
- if (unlikely(svm->nested.exit_required))
- return EXIT_FASTPATH_NONE;
-
- /*
* Disable singlestep if we're injecting an interrupt/exception.
* We don't want our modified rflags to be pushed on the stack where
* we might not be able to easily reset them if we disabled NMI
u64 vmcb_msrpm;
u64 vmcb_iopm;
- /* A VMEXIT is required but not yet emulated */
- bool exit_required;
-
/* A VMRUN has started but has not yet been performed, so
* we cannot inject a nested vmexit yet. */
bool nested_run_pending;