summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2017-01-24 23:02:58 +0400
committerMichael S. Tsirkin <mst@redhat.com>2017-02-01 03:37:18 +0200
commite0b283e7c5b020c3e54629d8b82117db0af21cca (patch)
tree06ab8fed2a8fbc61217077c330bba62783d1225f
parentd56ec1e98c0005933fe677d633484297f422691a (diff)
downloadfocaccia-qemu-e0b283e7c5b020c3e54629d8b82117db0af21cca.tar.gz
focaccia-qemu-e0b283e7c5b020c3e54629d8b82117db0af21cca.zip
vhost-user: delete chardev on cleanup
Remove the chardev implicitly when cleaning up the netdev. This
prevents from reusing the chardev since it would be in an incorrect
state with the slave.

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1256618

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
-rw-r--r--net/vhost-user.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/vhost-user.c b/net/vhost-user.c
index b0f0ab6cc8..77b8110f8c 100644
--- a/net/vhost-user.c
+++ b/net/vhost-user.c
@@ -151,7 +151,10 @@ static void vhost_user_cleanup(NetClientState *nc)
         s->vhost_net = NULL;
     }
     if (nc->queue_index == 0) {
+        Chardev *chr = qemu_chr_fe_get_driver(&s->chr);
+
         qemu_chr_fe_deinit(&s->chr);
+        qemu_chr_delete(chr);
     }
 
     qemu_purge_queued_packets(nc);