--- x/drivers/vhost/vhost.c +++ y/drivers/vhost/vhost.c @@ -240,7 +240,10 @@ void vhost_work_dev_flush(struct vhost_d vhost_work_init(&flush.work, vhost_flush_work); vhost_work_queue(dev, &flush.work); - wait_for_completion(&flush.wait_event); + for (;;) { + if (wait_for_completion_timeout(&flush.wait_event, 100*HZ)) + break; + } } } EXPORT_SYMBOL_GPL(vhost_work_dev_flush);