This patch removes the `*be_opened = false` override for the UDP chardev backend. Since UDP is connectionless it never sends a `CHR_EVENT_OPENED` so it is never marked open. This causes some frontends (e.g. virtio-serial) to never perform any operations on the socket.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2993 Signed-off-by: Eric K <[email protected]> --- chardev/char-udp.c | 2 -- tests/unit/test-char.c | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/chardev/char-udp.c b/chardev/char-udp.c index 572fab0ad1..1025f577a0 100644 --- a/chardev/char-udp.c +++ b/chardev/char-udp.c @@ -215,8 +215,6 @@ static void qmp_chardev_open_udp(Chardev *chr, g_free(name); s->ioc = QIO_CHANNEL(sioc); - /* be isn't opened until we get a connection */ - *be_opened = false; } static void char_udp_class_init(ObjectClass *oc, const void *data) diff --git a/tests/unit/test-char.c b/tests/unit/test-char.c index 8a98e42cad..2869c4e09d 100644 --- a/tests/unit/test-char.c +++ b/tests/unit/test-char.c @@ -1012,6 +1012,8 @@ static void char_udp_test_internal(Chardev *reuse_chr, int sock) qemu_chr_fe_init(fe, chr, &error_abort); } + g_assert(chr->be_open); + d.chr = chr; qemu_chr_fe_set_handlers(fe, socket_can_read_hello, socket_read_hello, NULL, NULL, &d, NULL, true); -- 2.52.0
