diff options
author | Colin Xu <colin.xu@intel.com> | 2020-09-25 10:18:08 +0800 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2020-10-14 06:05:56 +0200 |
commit | 33d72145d783457973e29aed703b84f820763f47 (patch) | |
tree | 415b0c0c917b24128aa21eb5d4fe9ac87ffeb526 /ui/input-linux.c | |
parent | 67c6f1dbb708f4cf0edc18d427f694654999b4b2 (diff) | |
download | qemu-33d72145d783457973e29aed703b84f820763f47.zip qemu-33d72145d783457973e29aed703b84f820763f47.tar.gz qemu-33d72145d783457973e29aed703b84f820763f47.tar.bz2 |
input-linux: Reset il->fd handler before closing it
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>
Diffstat (limited to 'ui/input-linux.c')
-rw-r--r-- | ui/input-linux.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/ui/input-linux.c b/ui/input-linux.c index ab351a4..34cc531 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); |