diff options
author | Stefan Hajnoczi | 2020-09-24 17:15:40 +0200 |
---|---|---|
committer | Stefan Hajnoczi | 2020-10-23 14:42:16 +0200 |
commit | dad4f19431653abf2a576ed062f8de4223eb228b (patch) | |
tree | db4bae7702849f5468307e5eb35657cdac71fe90 | |
parent | util/vhost-user-server: drop unnecessary QOM cast (diff) | |
download | qemu-dad4f19431653abf2a576ed062f8de4223eb228b.tar.gz qemu-dad4f19431653abf2a576ed062f8de4223eb228b.tar.xz qemu-dad4f19431653abf2a576ed062f8de4223eb228b.zip |
util/vhost-user-server: drop unnecessary watch deletion
Explicitly deleting watches is not necessary since libvhost-user calls
remove_watch() during vu_deinit(). Add an assertion to check this
though.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20200924151549.913737-5-stefanha@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r-- | util/vhost-user-server.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/util/vhost-user-server.c b/util/vhost-user-server.c index 443ab7448c..6efe2279fd 100644 --- a/util/vhost-user-server.c +++ b/util/vhost-user-server.c @@ -48,21 +48,6 @@ static void close_client(VuServer *server) /* When this is set vu_client_trip will stop new processing vhost-user message */ server->sioc = NULL; - VuFdWatch *vu_fd_watch, *next; - QTAILQ_FOREACH_SAFE(vu_fd_watch, &server->vu_fd_watches, next, next) { - aio_set_fd_handler(server->ioc->ctx, vu_fd_watch->fd, true, NULL, - NULL, NULL, NULL); - } - - while (!QTAILQ_EMPTY(&server->vu_fd_watches)) { - QTAILQ_FOREACH_SAFE(vu_fd_watch, &server->vu_fd_watches, next, next) { - if (!vu_fd_watch->processing) { - QTAILQ_REMOVE(&server->vu_fd_watches, vu_fd_watch, next); - g_free(vu_fd_watch); - } - } - } - while (server->processing_msg) { if (server->ioc->read_coroutine) { server->ioc->read_coroutine = NULL; @@ -73,6 +58,10 @@ static void close_client(VuServer *server) } vu_deinit(&server->vu_dev); + + /* vu_deinit() should have called remove_watch() */ + assert(QTAILQ_EMPTY(&server->vu_fd_watches)); + object_unref(OBJECT(sioc)); object_unref(OBJECT(server->ioc)); } |