Fix a bug in the spice flow control patches which breaks the tcp chardev

This commit is contained in:
Hans de Goede 2011-05-02 18:26:59 +02:00
parent 6c5f3fbce9
commit 7a6484a3d9
3 changed files with 18 additions and 13 deletions

View File

@ -1,7 +1,8 @@
>From 8b73193a8584da4e93bccd93fe6f0b8f1a1612b3 Mon Sep 17 00:00:00 2001
From 8f5b96bd3bdd4fe7aa80f2f27d51bece8f64f20f Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 22:00:27 +0100
Subject: [PATCH 09/17] char: Update send_all() to handle nonblocking chardev write requests
Subject: [PATCH 09/30] char: Update send_all() to handle nonblocking chardev
write requests
The send_all function is modified to return to the caller in case the
driver cannot handle any more data. It returns -EAGAIN or
@ -16,9 +17,9 @@ commits will add such capability.
Signed-off-by: Amit Shah <amit.shah@redhat.com>
---
net/socket.c | 4 +-
qemu-char.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
qemu-char.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
qemu_socket.h | 2 +-
3 files changed, 76 insertions(+), 9 deletions(-)
3 files changed, 77 insertions(+), 9 deletions(-)
diff --git a/net/socket.c b/net/socket.c
index 3182b37..5dedd78 100644
@ -36,7 +37,7 @@ index 3182b37..5dedd78 100644
static ssize_t net_socket_receive_dgram(VLANClientState *nc, const uint8_t *buf, size_t size)
diff --git a/qemu-char.c b/qemu-char.c
index ce76411..eed61d6 100644
index ce76411..3f665c9 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -500,7 +500,7 @@ static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
@ -163,7 +164,7 @@ index ce76411..eed61d6 100644
}
static int pty_chr_read_poll(void *opaque)
@@ -1944,8 +2005,14 @@ static void tcp_closed(void *opaque)
@@ -1944,8 +2005,15 @@ static void tcp_closed(void *opaque)
static int tcp_chr_write(CharDriverState *chr, const uint8_t *buf, int len)
{
TCPCharDriver *s = chr->opaque;
@ -176,6 +177,7 @@ index ce76411..eed61d6 100644
+ if (ret == -1 && errno == EPIPE) {
+ tcp_closed(chr);
+ }
+ return ret;
} else {
/* XXX: indicate an error ? */
return len;
@ -193,5 +195,5 @@ index 897a8ae..97dd24a 100644
/* New, ipv6-ready socket helper functions, see qemu-sockets.c */
int inet_listen_opts(QemuOpts *opts, int port_offset);
--
1.7.3.2
1.7.5

View File

@ -1,7 +1,7 @@
>From 473be206466567646e3377b8eb64e25ffc2b3afe Mon Sep 17 00:00:00 2001
From 6a758a4f301d3f8450983d6ef82f3b6dbe0644f4 Mon Sep 17 00:00:00 2001
From: Amit Shah <amit.shah@redhat.com>
Date: Mon, 21 Mar 2011 22:05:10 +0100
Subject: [PATCH 11/17] char: Throttle when host connection is down#
Subject: [PATCH 11/30] char: Throttle when host connection is down#
When the host-side connection goes down, throttle the virtio-serial bus
and later unthrottle when a connection gets established. This helps
@ -20,7 +20,7 @@ Signed-off-by: Amit Shah <amit.shah@redhat.com>
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/qemu-char.c b/qemu-char.c
index 7517f64..2ef972f 100644
index 49e61ba..72c0ce8 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -141,6 +141,9 @@ static void qemu_chr_generic_open_bh(void *opaque)
@ -49,8 +49,8 @@ index 7517f64..2ef972f 100644
+ return 0;
+ }
}
return ret;
} else {
/* XXX: indicate an error ? */
--
1.7.3.2
1.7.5

View File

@ -1,7 +1,7 @@
Summary: QEMU is a FAST! processor emulator
Name: qemu
Version: 0.14.0
Release: 7%{?dist}
Release: 8%{?dist}
# Epoch because we pushed a qemu-1.0 package
Epoch: 2
License: GPLv2+ and LGPLv2+ and BSD
@ -560,6 +560,9 @@ fi
%{_mandir}/man1/qemu-img.1*
%changelog
* Mon May 2 2011 Hans de Goede <hdegoede@redhat.com> - 2:0.14.0-8
- Fix a bug in the spice flow control patches which breaks the tcp chardev
* Tue Mar 29 2011 Justin M. Forbes <jforbes@redhat.com> - 2:0.14.0-7
- Disable qemu-ppc and qemu-sparc packages (#679179)