vhost-user: delete chardev on cleanup
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Tue, 24 Jan 2017 19:02:58 +0000 (23:02 +0400)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 1 Feb 2017 01:37:18 +0000 (03:37 +0200)
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>
net/vhost-user.c

index b0f0ab6cc886c321a5bba7406bd572cc058a8c97..77b8110f8c01f23d22ad3b10243e5e9a019e6605 100644 (file)
@@ -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);