summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCoiby Xu2020-09-18 10:09:07 +0200
committerStefan Hajnoczi2020-10-23 14:42:16 +0200
commitf1baeee9ffeddcc068d3536f90b5c3e9f81d9309 (patch)
treed018a9ca2db9e3a0277af5cb508819abf4435024
parentlibvhost-user: Allow vu_message_read to be replaced (diff)
downloadqemu-f1baeee9ffeddcc068d3536f90b5c3e9f81d9309.tar.gz
qemu-f1baeee9ffeddcc068d3536f90b5c3e9f81d9309.tar.xz
qemu-f1baeee9ffeddcc068d3536f90b5c3e9f81d9309.zip
libvhost-user: remove watch for kick_fd when de-initialize vu-dev
When the client is running in gdb and quit command is run in gdb, QEMU will still dispatch the event which will cause segment fault in the callback function. Signed-off-by: Coiby Xu <coiby.xu@gmail.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-id: 20200918080912.321299-3-coiby.xu@gmail.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r--contrib/libvhost-user/libvhost-user.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/contrib/libvhost-user/libvhost-user.c b/contrib/libvhost-user/libvhost-user.c
index 09bdff18f3..bfec8a881a 100644
--- a/contrib/libvhost-user/libvhost-user.c
+++ b/contrib/libvhost-user/libvhost-user.c
@@ -1918,6 +1918,7 @@ vu_deinit(VuDev *dev)
}
if (vq->kick_fd != -1) {
+ dev->remove_watch(dev, vq->kick_fd);
close(vq->kick_fd);
vq->kick_fd = -1;
}