* [QEMU][PATCH v2] chardev/char-socket: Properly make qio connections non blocking
@ 2020-04-19 9:33 Sai Pavan Boddu
0 siblings, 0 replies; only message in thread
From: Sai Pavan Boddu @ 2020-04-19 9:33 UTC (permalink / raw)
To: Marc-André Lureau, Daniel P . Berrangé, Eric Blake
Cc: Paolo Bonzini, edgari, qemu-devel
In tcp_chr_sync_read function, there is a possibility of socket
disconnection during read, then tcp_chr_hup function would clean up
the qio channel pointers(i.e ioc, sioc).
Signed-off-by: Sai Pavan Boddu <sai.pavan.boddu@xilinx.com>
---
Changes for V2:
Simply guard the 'qio_channel_set_blocking' call to check connection status.
This is a simple fix than v1 and explains much better about the issue.
chardev/char-socket.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 185fe38..e56b2f0 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -549,7 +549,9 @@ static int tcp_chr_sync_read(Chardev *chr, const uint8_t *buf, int len)
qio_channel_set_blocking(s->ioc, true, NULL);
size = tcp_chr_recv(chr, (void *) buf, len);
- qio_channel_set_blocking(s->ioc, false, NULL);
+ if (s->state != TCP_CHARDEV_STATE_DISCONNECTED) {
+ qio_channel_set_blocking(s->ioc, false, NULL);
+ }
if (size == 0) {
/* connection closed */
tcp_chr_disconnect(chr);
--
2.7.4
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2020-04-19 9:55 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-19 9:33 [QEMU][PATCH v2] chardev/char-socket: Properly make qio connections non blocking Sai Pavan Boddu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).