qemu/chardev
Maxim Mikityanskiy 6807403eed char-stdio: Restore blocking mode of stdout on exit
qemu_chr_open_fd() sets stdout into non-blocking mode. Restore the old
fd flags on exit to avoid breaking unsuspecting applications that run on
the same terminal after qemu and don't expect to get EAGAIN.

While at at, also ensure term_exit is called once (at the moment it's
called both from char_stdio_finalize() and as the atexit() hook.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2423
Signed-off-by: Maxim Mikityanskiy <maxtram95@gmail.com>
Link: https://lore.kernel.org/r/20240703190812.3459514-1-maxtram95@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit a0124e333e)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2024-07-05 15:04:19 +03:00
..
baum.c chardev/baum: Avoid dynamic stack allocation 2022-09-22 16:38:28 +01:00
char-console.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
char-fd.c chardev: replace qemu_set_nonblock() 2022-05-03 15:51:52 +04:00
char-fe.c chardev: mark explicitly first argument as poisoned 2021-08-05 16:15:33 +04:00
char-file.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
char-io.c QIOChannel: Add flags on io_writev and introduce io_flush callback 2022-05-16 13:56:24 +01:00
char-mux.c chardev: don't exit() straight away on C-a x 2021-11-04 10:32:01 +00:00
char-null.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
char-parallel.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
char-pipe.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
char-pty.c chardev/char-pty: Avoid losing bytes when the other side just (re-)connected 2023-10-21 14:04:51 +03:00
char-ringbuf.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
char-serial.c chardev: replace qemu_set_nonblock() 2022-05-03 15:51:52 +04:00
char-socket.c chardev/char-socket: set s->listener = NULL in char_socket_finalize 2023-03-29 10:20:04 +03:00
char-stdio.c char-stdio: Restore blocking mode of stdout on exit 2024-07-05 15:04:19 +03:00
char-udp.c qapi: Convert simple union SocketAddressLegacy to flat one 2021-09-27 08:23:25 +02:00
char-win-stdio.c chardev/char-win-stdio: Pass Ctrl+C to guest with a multiplexed monitor 2022-11-21 11:30:11 +04:00
char-win.c chardev: Improve error report by calling error_setg_win32() 2020-03-09 13:36:15 +01:00
char.c chardev/char.c: fix "abstract device type" error message 2024-01-08 19:25:14 +03:00
chardev-internal.h Clean up decorations and whitespace around header guards 2022-05-11 16:50:32 +02:00
meson.build char: move qemu_openpty_raw from util/ to char/ 2022-04-06 10:50:37 +02:00
msmouse.c chardev: fix segfault in finalize 2022-09-29 14:38:05 +04:00
spice.c chardev-spice: add missing module_obj directive 2021-07-22 14:44:47 +02:00
testdev.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
trace-events docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
wctablet.c chardev: fix segfault in finalize 2022-09-29 14:38:05 +04:00