>> +++ 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