aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/devices/virtio/vhost-user.c
diff options
context:
space:
mode:
Diffstat (limited to 'vnet/vnet/devices/virtio/vhost-user.c')
-rw-r--r--vnet/vnet/devices/virtio/vhost-user.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/vnet/vnet/devices/virtio/vhost-user.c b/vnet/vnet/devices/virtio/vhost-user.c
index 25bcbca50ac..f00fd9665c6 100644
--- a/vnet/vnet/devices/virtio/vhost-user.c
+++ b/vnet/vnet/devices/virtio/vhost-user.c
@@ -344,6 +344,9 @@ vhost_user_socket_read (unix_file_t * uf)
n = recvmsg (uf->file_descriptor, &mh, 0);
+ /* Stop workers to avoid end of the world */
+ vlib_worker_thread_barrier_sync (vlib_get_main ());
+
if (n != VHOST_USER_MSG_HDR_SZ)
goto close_socket;
@@ -724,10 +727,12 @@ vhost_user_socket_read (unix_file_t * uf)
goto close_socket;
}
+ vlib_worker_thread_barrier_release (vlib_get_main ());
return 0;
close_socket:
vhost_user_if_disconnect (vui);
+ vlib_worker_thread_barrier_release (vlib_get_main ());
return 0;
}