summaryrefslogtreecommitdiff
path: root/net/vhost-user.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2016-06-06 18:45:03 +0200
committerMichael S. Tsirkin <mst@redhat.com>2016-06-17 03:28:02 +0300
commit0d572afd5266d1d67d132d06ea45d7246bcd6105 (patch)
treeaa746f7d66f74dcfd394c8fb7fec950efa488a5f /net/vhost-user.c
parent7d9d17f71e580218629a91f72eeef4db1c96b0ae (diff)
downloadqemu-0d572afd5266d1d67d132d06ea45d7246bcd6105.tar.gz
vhost-user: disconnect on start failure
If the backend failed to start (for example feature negociation failed), do not exit, but disconnect the char device instead. Slightly more robust for reconnect case. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Tested-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Victor Kaplansky <victork@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'net/vhost-user.c')
-rw-r--r--net/vhost-user.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/vhost-user.c b/net/vhost-user.c
index 4a7fd5fbd5..41ddb4b9ca 100644
--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -202,7 +202,8 @@ static void net_vhost_user_event(void *opaque, int event)
s->watch = qemu_chr_fe_add_watch(s->chr, G_IO_HUP,
net_vhost_user_watch, s);
if (vhost_user_start(queues, ncs) < 0) {
- exit(1);
+ qemu_chr_disconnect(s->chr);
+ return;
}
qmp_set_link(name, true, &err);
break;