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().

>      }
>  
>      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 ?

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





With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Reply via email to