]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: selftests: Check for a potential unhandled exception iff KVM_RUN succeeded
authorSean Christopherson <seanjc@google.com>
Thu, 28 Nov 2024 00:55:35 +0000 (16:55 -0800)
committerSean Christopherson <seanjc@google.com>
Wed, 18 Dec 2024 22:14:54 +0000 (14:14 -0800)
Don't check for an unhandled exception if KVM_RUN failed, e.g. if it
returned errno=EFAULT, as reporting unhandled exceptions is done via a
ucall, i.e. requires KVM_RUN to exit cleanly.  Theoretically, checking
for a ucall on a failed KVM_RUN could get a false positive, e.g. if there
were stale data in vcpu->run from a previous exit.

Reviewed-by: James Houghton <jthoughton@google.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Link: https://lore.kernel.org/r/20241128005547.4077116-5-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/lib/kvm_util.c

index 480e3a40d19758958cf4f463ec2464dec4f60636..33fefeb3ca441fd9fad08e35adcb05bb1fdf3841 100644 (file)
@@ -1648,7 +1648,8 @@ int _vcpu_run(struct kvm_vcpu *vcpu)
                rc = __vcpu_run(vcpu);
        } while (rc == -1 && errno == EINTR);
 
-       assert_on_unhandled_exception(vcpu);
+       if (!rc)
+               assert_on_unhandled_exception(vcpu);
 
        return rc;
 }