On 12.09.25 20:11, Daniel P. Berrangé wrote:
On Thu, Sep 11, 2025 at 12:20:06PM +0300, Vladimir Sementsov-Ogievskiy wrote:
Instead of open-coded g_unix_set_fd_nonblocking() calls, use
QEMU wrapper qemu_set_blocking().

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru>
---
  chardev/char-fd.c                  |  4 ++--
  chardev/char-pty.c                 |  3 +--
  chardev/char-serial.c              |  3 +--
  chardev/char-stdio.c               |  3 +--
  hw/input/virtio-input-host.c       |  3 +--
  hw/misc/ivshmem-flat.c             |  3 ++-
  hw/misc/ivshmem-pci.c              |  7 ++++++-
  hw/virtio/vhost-vsock.c            |  8 ++------
  io/channel-command.c               |  9 ++++++---
  io/channel-file.c                  |  3 +--
  net/tap-bsd.c                      | 12 ++++++++++--
  net/tap-linux.c                    |  7 ++++++-
  net/tap-solaris.c                  |  7 ++++++-
  net/tap.c                          | 21 ++++++---------------
  qga/commands-posix.c               |  3 +--
  tests/qtest/fuzz/virtio_net_fuzz.c |  2 +-
  tests/qtest/vhost-user-test.c      |  3 +--
  tests/unit/test-iov.c              |  5 +++--
  ui/input-linux.c                   |  3 +--
  util/event_notifier-posix.c        |  4 ++--
  util/main-loop.c                   |  5 ++++-
  21 files changed, 64 insertions(+), 54 deletions(-)

diff --git a/chardev/char-fd.c b/chardev/char-fd.c
index 6f03adf872..739dc68c36 100644
--- a/chardev/char-fd.c
+++ b/chardev/char-fd.c
@@ -212,8 +212,8 @@ void qemu_chr_open_fd(Chardev *chr,
      FDChardev *s = FD_CHARDEV(chr);
      g_autofree char *name = NULL;
- if (fd_out >= 0 && !g_unix_set_fd_nonblocking(fd_out, true, NULL)) {
-        assert(!"Failed to set FD nonblocking");
+    if (fd_out >= 0) {
+        qemu_set_blocking(fd_out, false, &error_abort);

Every caller of this method has an 'errp' available that we
can plumb into qemu_chr_open_fd().

Will look a it.


      }
if (fd_out == fd_in && fd_in >= 0) {


diff --git a/hw/misc/ivshmem-flat.c b/hw/misc/ivshmem-flat.c
index fe4be6be17..89495f6a11 100644
--- a/hw/misc/ivshmem-flat.c
+++ b/hw/misc/ivshmem-flat.c
@@ -154,7 +154,8 @@ static void ivshmem_flat_add_vector(IvshmemFTState *s, 
IvshmemPeer *peer,
       * peer.
       */
      peer->vector[peer->vector_counter].id = peer->vector_counter;
-    g_unix_set_fd_nonblocking(vector_fd, true, NULL);
+    /* WARNING: qemu_socket_set_nonblock() return code ignored */
+    qemu_set_blocking(vector_fd, false, NULL);

Perhaps &warn_report so we at least diagnose this awkward situation ?


Ok

      event_notifier_init_fd(&peer->vector[peer->vector_counter].event_notifier,
                             vector_fd);



Thanks for reviewing!

--
Best regards,
Vladimir

Reply via email to