diff --git a/lib/vhost/vhost.c b/lib/vhost/vhost.c index fb89a8e92d..5b96729320 100644 --- a/lib/vhost/vhost.c +++ b/lib/vhost/vhost.c @@ -637,8 +637,8 @@ spdk_vhost_event_send(struct spdk_vhost_dev *vdev, spdk_vhost_event_fn cb_fn, rc = sem_timedwait(&ev_ctx.sem, &timeout); if (rc != 0) { - SPDK_ERRLOG("Timout waiting for event: %s.\n", errmsg); - abort(); + SPDK_ERRLOG("Timeout waiting for event: %s.\n", errmsg); + sem_wait(&ev_ctx.sem); } sem_destroy(&ev_ctx.sem); diff --git a/lib/vhost/vhost_internal.h b/lib/vhost/vhost_internal.h index 111b98c771..cffb8f5976 100644 --- a/lib/vhost/vhost_internal.h +++ b/lib/vhost/vhost_internal.h @@ -91,9 +91,6 @@ struct spdk_vhost_dev_backend { * The first param is struct spdk_vhost_dev *. * The second one is event context that has to be * passed to spdk_vhost_dev_backend_event_done(). - * If spdk_vhost_dev_backend_event_done isn't called - * within an arbitrary limit of 3 seconds, these - * callbacks will time out. */ spdk_vhost_event_fn start_device; spdk_vhost_event_fn stop_device;