From: Vladimir Sementsov-Ogievskiy Date: Sun, 1 Feb 2026 17:36:29 +0000 (+0300) Subject: char: qemu_chr_write_log() use qemu_write_full() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa25379f760c595c26af669a8266258bc0635437;p=thirdparty%2Fqemu.git char: qemu_chr_write_log() use qemu_write_full() logfd is blocking, so we don't need to care about EAGAIN. Let's simply use qemu_write_full(). Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Marc-André Lureau Message-ID: <20260201173633.413934-2-vsementsov@yandex-team.ru> --- diff --git a/chardev/char.c b/chardev/char.c index 5d00cac2f3..4b285baf02 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -82,29 +82,17 @@ void qemu_chr_be_event(Chardev *s, QEMUChrEvent event) CHARDEV_GET_CLASS(s)->chr_be_event(s, event); } -/* Not reporting errors from writing to logfile, as logs are - * defined to be "best effort" only */ static void qemu_chr_write_log(Chardev *s, const uint8_t *buf, size_t len) { - size_t done = 0; - ssize_t ret; - if (s->logfd < 0) { return; } - while (done < len) { - retry: - ret = write(s->logfd, buf + done, len - done); - if (ret == -1 && errno == EAGAIN) { - g_usleep(100); - goto retry; - } - - if (ret <= 0) { - return; - } - done += ret; + if (qemu_write_full(s->logfd, buf, len) < len) { + /* + * qemu_write_full() is defined with G_GNUC_WARN_UNUSED_RESULT, + * but logging is best‑effort, we do ignore errors. + */ } }