On Thu, Jun 10, 2021, Ricardo Koller wrote: > diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing/selftests/kvm/include/kvm_util.h > index fcd8e3855111..beb76d6deaa9 100644 > --- a/tools/testing/selftests/kvm/include/kvm_util.h > +++ b/tools/testing/selftests/kvm/include/kvm_util.h > @@ -349,6 +349,7 @@ enum { > UCALL_SYNC, > UCALL_ABORT, > UCALL_DONE, > + UCALL_UNHANDLED, > }; ... > @@ -1254,16 +1254,13 @@ void vm_install_exception_handler(struct kvm_vm *vm, int vector, > > void assert_on_unhandled_exception(struct kvm_vm *vm, uint32_t vcpuid) > { > - if (vcpu_state(vm, vcpuid)->exit_reason == KVM_EXIT_IO > - && vcpu_state(vm, vcpuid)->io.port == UNEXPECTED_VECTOR_PORT > - && vcpu_state(vm, vcpuid)->io.size == 4) { > - /* Grab pointer to io data */ > - uint32_t *data = (void *)vcpu_state(vm, vcpuid) > - + vcpu_state(vm, vcpuid)->io.data_offset; > - > - TEST_ASSERT(false, > - "Unexpected vectored event in guest (vector:0x%x)", > - *data); > + struct ucall uc; > + > + if (get_ucall(vm, vcpuid, &uc) == UCALL_UNHANDLED) { UCALL_UNHANDLED is a bit of an odd name. Without the surrounding context, I would have no idea that it's referring to an unhandled event, e.g. my gut reaction would be that it means the ucall itself was unhandled. Maybe UCALL_UNHANDLED_EVENT? It's rather long, but I don't think that will be problematic for any of the code. > + uint64_t vector = uc.args[0]; > + > + TEST_FAIL("Unexpected vectored event in guest (vector:0x%lx)", > + vector); > } > } > > -- > 2.32.0.272.g935e593368-goog >