diff mbox series

[PULL,8/9] input-linux: Reset il->fd handler before closing it

Message ID 20201014082149.26853-9-kraxel@redhat.com
State New
Headers show
Series Ui 20201014 patches | expand

Commit Message

Gerd Hoffmann Oct. 14, 2020, 8:21 a.m. UTC
From: Colin Xu <colin.xu@intel.com>

If object-del input-linux object on-the-fly, instance finalize will
close evdev fd without resetting it. However the main thread is still
trying to lock_acquire/lock_release during ppoll, which leads to a very
high CPU utilization.

Signed-off-by: Colin Xu <colin.xu@intel.com>
Reviewed-by: Li Qiang <liq3ea@gmail.com>
Message-id: 20200925021808.26471-1-colin.xu@intel.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 ui/input-linux.c | 1 +
 1 file changed, 1 insertion(+)
diff mbox series

Patch

diff --git a/ui/input-linux.c b/ui/input-linux.c
index ab351a418701..34cc531190f9 100644
--- a/ui/input-linux.c
+++ b/ui/input-linux.c
@@ -418,6 +418,7 @@  static void input_linux_instance_finalize(Object *obj)
 
     if (il->initialized) {
         QTAILQ_REMOVE(&inputs, il, next);
+        qemu_set_fd_handler(il->fd, NULL, NULL, NULL);
         close(il->fd);
     }
     g_free(il->evdev);