aboutsummaryrefslogtreecommitdiff
path: root/hw/virtio-serial-bus.c
diff options
context:
space:
mode:
authorMarcelo Tosatti <mtosatti@redhat.com>2012-10-11 05:19:58 -0300
committerMarcelo Tosatti <mtosatti@redhat.com>2012-10-11 05:19:58 -0300
commitcaaef9b163a4696f686d91f9f2767e9c6ab446d6 (patch)
tree33acd5bd1bc8c34ffe36af2a7ab160018d80250f /hw/virtio-serial-bus.c
parent487a26af87644923656e98a40f7801ec2f459b14 (diff)
parentc9159fe9aa9abe24115ea4d16127179e9cb07e22 (diff)
Merge commit 'c9159fe9aa9abe24115ea4d16127179e9cb07e22' into upstream-merge
* commit 'c9159fe9aa9abe24115ea4d16127179e9cb07e22': (83 commits) Remove libhw rtc: implement century byte rtc: map CMOS index 0x37 to 0x32 on read and writes rtc: fix overflow in mktimegm qtest: implement QTEST_STOP qemu-barrier: Fix compiler version check for future gcc versions doc: update HACKING wrt strncpy/pstrcpy hw/r2d: add comment: this strncpy use is ok qcow2: mark this file's sole strncpy use as justified acpi: remove strzcpy (strncpy-identical) function; just use strncpy libcacard/vcard_emul_nss: use pstrcpy in place of strncpy qemu-ga: prefer pstrcpy: consistently NUL-terminate ifreq.ifr_name vscsi: avoid unwarranted strncpy virtio-9p: avoid unwarranted uses of strncpy bt: replace fragile snprintf use and unwarranted strncpy ui/vnc: simplify and avoid strncpy linux-user: remove two unchecked uses of strdup ppc: avoid buffer overrun: use pstrcpy, not strncpy os-posix: avoid buffer overrun lm32: avoid buffer overrun ... Conflicts: hw/Makefile.objs Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'hw/virtio-serial-bus.c')
-rw-r--r--hw/virtio-serial-bus.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
index 82073f5dc..d20bd8bf7 100644
--- a/hw/virtio-serial-bus.c
+++ b/hw/virtio-serial-bus.c
@@ -287,6 +287,7 @@ ssize_t virtio_serial_write(VirtIOSerialPort *port, const uint8_t *buf,
size_t virtio_serial_guest_ready(VirtIOSerialPort *port)
{
VirtQueue *vq = port->ivq;
+ unsigned int bytes;
if (!virtio_queue_ready(vq) ||
!(port->vser->vdev.status & VIRTIO_CONFIG_S_DRIVER_OK) ||
@@ -296,14 +297,8 @@ size_t virtio_serial_guest_ready(VirtIOSerialPort *port)
if (use_multiport(port->vser) && !port->guest_connected) {
return 0;
}
-
- if (virtqueue_avail_bytes(vq, 4096, 0)) {
- return 4096;
- }
- if (virtqueue_avail_bytes(vq, 1, 0)) {
- return 1;
- }
- return 0;
+ virtqueue_get_avail_bytes(vq, &bytes, NULL);
+ return bytes;
}
static void flush_queued_data_bh(void *opaque)