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