Skip to content
  • Hans de Goede's avatar
    spice-qemu-char: Fix flow control in client -> guest direction · 35106c2d
    Hans de Goede authored
    
    
    In the old spice-vmc device we used to have:
    last_out = virtio_serial_write(&svc->port, p, MIN(len, VMC_MAX_HOST_WRITE));
    if (last_out > 0)
       ...
    
    Now in the chardev backend we have:
    last_out = MIN(len, VMC_MAX_HOST_WRITE);
    qemu_chr_read(scd->chr, p, last_out);
    if (last_out > 0) {
       ...
    
    Which causes us to no longer detect if the virtio port is not ready
    to receive data from us. chardev actually has a mechanism to detect this,
    but it requires a separate call to qemu_chr_can_read, before calling
    qemu_chr_read (which return void).
    
    This patch uses qemu_chr_can_read to fix the flow control from client to
    guest.
    
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    35106c2d