[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/15] char: ensure all clients are in non-blocking m
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 09/15] char: ensure all clients are in non-blocking mode |
Date: |
Tue, 5 Apr 2016 11:50:12 +0200 |
From: "Daniel P. Berrange" <address@hidden>
Only some callers of tcp_chr_new_client are putting the
socket client into non-blocking mode. Move the call to
qio_channel_set_blocking() into the tcp_chr_new_client
method to guarantee that all code paths set non-blocking
mode
Reported-by: Andrew Baumann <address@hidden>
Reported-by: Laurent Vivier <address@hidden>
Signed-off-by: Daniel P. Berrange <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
qemu-char.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/qemu-char.c b/qemu-char.c
index 93fd733..b597ee1 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3081,6 +3081,8 @@ static int tcp_chr_new_client(CharDriverState *chr,
QIOChannelSocket *sioc)
s->sioc = sioc;
object_ref(OBJECT(sioc));
+ qio_channel_set_blocking(s->ioc, false, NULL);
+
if (s->do_nodelay) {
qio_channel_set_delay(s->ioc, false);
}
@@ -3112,7 +3114,6 @@ static int tcp_chr_add_client(CharDriverState *chr, int
fd)
if (!sioc) {
return -1;
}
- qio_channel_set_blocking(QIO_CHANNEL(sioc), false, NULL);
ret = tcp_chr_new_client(chr, sioc);
object_unref(OBJECT(sioc));
return ret;
--
2.5.5
- [Qemu-devel] [PULL 00/15] Misc changes for QEMU 2.6.0-rc1, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 04/15] target-i386: do not pass MSR_TSC_AUX to KVM ioctls if CPUID bit is not set, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 02/15] target-i386/kvm: Hyper-V VMBus hypercalls blank handlers, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 03/15] memory: fix segv on qemu_ram_free(block=0x0), Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 01/15] update Linux headers to 4.6, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 05/15] target-i386: assert that KVM_GET/SET_MSRS can set all requested MSRs, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 09/15] char: ensure all clients are in non-blocking mode,
Paolo Bonzini <=
- [Qemu-devel] [PULL 08/15] char: fix broken EAGAIN retry on OS-X due to errno clobbering, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 10/15] doc/memory: update MMIO section, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 07/15] util: retry getaddrinfo if getting EAI_BADFLAGS with AI_V4MAPPED, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 11/15] nbd: don't request FUA on FLUSH, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 06/15] checkpatch: add target_ulong to typelist, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 14/15] nbd: Fix poor debug message, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 12/15] cpus: don't use atomic_read for vm_clock_warp_start, Paolo Bonzini, 2016/04/05
- [Qemu-devel] [PULL 13/15] include/qemu/atomic: add compile time asserts, Paolo Bonzini, 2016/04/05