summaryrefslogtreecommitdiff
path: root/spice-qemu-char.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-12-05 16:15:32 +0100
committerGerd Hoffmann <kraxel@redhat.com>2012-12-17 14:01:41 +0100
commit07a54d704e62e2515db0b085d53d13a2f1b1b06a (patch)
tree0bb54e83794456d564c6c141bfbe5fdf10fc2500 /spice-qemu-char.c
parent938b8a36b65e44c44ca29245437f8d7ac0f826e8 (diff)
downloadqemu-07a54d704e62e2515db0b085d53d13a2f1b1b06a.tar.gz
spice-qemu-char: write to chardev whatever amount it can read
The current code waits until the chardev can read MIN(len, VMC_MAX) But some chardev may never reach than amount, in fact some of them will only ever accept write of 1. Fix the min computation and remove the VMC_MAX constant. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'spice-qemu-char.c')
-rw-r--r--spice-qemu-char.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/spice-qemu-char.c b/spice-qemu-char.c
index 09aa22d566..665efd30ee 100644
--- a/spice-qemu-char.c
+++ b/spice-qemu-char.c
@@ -14,8 +14,6 @@
} \
} while (0)
-#define VMC_MAX_HOST_WRITE 2048
-
typedef struct SpiceCharDriver {
CharDriverState* chr;
SpiceCharDeviceInstance sin;
@@ -35,8 +33,8 @@ static int vmc_write(SpiceCharDeviceInstance *sin, const uint8_t *buf, int len)
uint8_t* p = (uint8_t*)buf;
while (len > 0) {
- last_out = MIN(len, VMC_MAX_HOST_WRITE);
- if (qemu_chr_be_can_write(scd->chr) < last_out) {
+ last_out = MIN(len, qemu_chr_be_can_write(scd->chr));
+ if (last_out <= 0) {
break;
}
qemu_chr_be_write(scd->chr, p, last_out);