Merge tag 'drm-misc-next-2019-04-18' of git://anongit.freedesktop.org/drm/drm-misc...
[sfrench/cifs-2.6.git] / tools / testing / selftests / kvm / lib / kvm_util.c
index b52cfdefecbfe9f760b569baf757d2228fe0c6af..efa0aad8b3c69ab370a1f5440194cee3486c11db 100644 (file)
@@ -1121,6 +1121,22 @@ int _vcpu_run(struct kvm_vm *vm, uint32_t vcpuid)
        return rc;
 }
 
+void vcpu_run_complete_io(struct kvm_vm *vm, uint32_t vcpuid)
+{
+       struct vcpu *vcpu = vcpu_find(vm, vcpuid);
+       int ret;
+
+       TEST_ASSERT(vcpu != NULL, "vcpu not found, vcpuid: %u", vcpuid);
+
+       vcpu->state->immediate_exit = 1;
+       ret = ioctl(vcpu->fd, KVM_RUN, NULL);
+       vcpu->state->immediate_exit = 0;
+
+       TEST_ASSERT(ret == -1 && errno == EINTR,
+                   "KVM_RUN IOCTL didn't exit immediately, rc: %i, errno: %i",
+                   ret, errno);
+}
+
 /*
  * VM VCPU Set MP State
  *