arch/x86/kvm/x86.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
If a triple fault was fixed by kvm_x86_ops.nested_ops->triple_fault (by
turning it into a vmexit), there is no need to leave vcpu_enter_guest().
Any vcpu->requests will be caught later before the actual vmentry,
and in fact vcpu_enter_guest() was not initializing the "r" variable.
Depending on the compiler's whims, this could cause the
x86_64/triple_fault_event_test test to fail.
Cc: Maxim Levitsky <mlevitsk@redhat.com>
Fixes: 92e7d5c83aff ("KVM: x86: allow L1 to not intercept triple fault")
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
arch/x86/kvm/x86.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 246bdc9a9154..7f850dfb4086 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -10280,8 +10280,8 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
vcpu->run->exit_reason = KVM_EXIT_SHUTDOWN;
vcpu->mmio_needed = 0;
r = 0;
+ goto out;
}
- goto out;
}
if (kvm_check_request(KVM_REQ_APF_HALT, vcpu)) {
/* Page is swapped out. Do synthetic halt */
--
2.31.1
On Wed, 2022-11-30 at 11:15 -0500, Paolo Bonzini wrote: > If a triple fault was fixed by kvm_x86_ops.nested_ops->triple_fault (by > turning it into a vmexit), there is no need to leave vcpu_enter_guest(). > Any vcpu->requests will be caught later before the actual vmentry, > and in fact vcpu_enter_guest() was not initializing the "r" variable. > Depending on the compiler's whims, this could cause the > x86_64/triple_fault_event_test test to fail. > > Cc: Maxim Levitsky <mlevitsk@redhat.com> > Fixes: 92e7d5c83aff ("KVM: x86: allow L1 to not intercept triple fault") > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> > --- > arch/x86/kvm/x86.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 246bdc9a9154..7f850dfb4086 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -10280,8 +10280,8 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) > vcpu->run->exit_reason = KVM_EXIT_SHUTDOWN; > vcpu->mmio_needed = 0; > r = 0; > + goto out; > } > - goto out; > } > if (kvm_check_request(KVM_REQ_APF_HALT, vcpu)) { > /* Page is swapped out. Do synthetic halt */ I had the same patch waiting to be sent, so: Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> But we need to add the orignal reporter of this bug as well: Reported-by: Dan Carpenter <error27@gmail.com> Best regards, Maxim Levitsky
© 2016 - 2025 Red Hat, Inc.