>> +++ b/hw/virtio-serial-bus.c
>> @@ -163,7 +163,19 @@ static void do_flush_queued_data(VirtIOS
>>                  abort();
>>              }
>>              if (ret == -EAGAIN || (ret >= 0 && ret < buf_size)) {
>> -                virtio_serial_throttle_port(port, true);
> 
> I'm surprised: did you test this with upstream qemu?  That codebase
> doesn't yet throttle writes, and this code path won't execute.  Does
> it really not reproduce with this patch?

I think 
static void handle_output(VirtIODevice *vdev, VirtQueue *vq)
[....]
    if (!port->throttled) {
        do_flush_queued_data(port, vq, vdev);
        return;

makes a difference here, since we will never return the buffer to the guest, no?

Christian


Reply via email to