aboutsummaryrefslogtreecommitdiff
path: root/net
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 /net
parentd56ec1e98c0005933fe677d633484297f422691a (diff)
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>
Diffstat (limited to 'net')
-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);