> /* Callback function that's called when the guest sends us data */
> static void flush_buf(VirtIOSerialPort *port, const uint8_t *buf, size_t
> len) {
> VirtConsole *vcon = DO_UPCAST(VirtConsole, port, port);
> + int ret;
>
> - qemu_chr_write(vcon->chr, buf, len);
> + ret = qemu_chr_write(vcon->chr, buf, len);
> + if (ret == -EAGAIN) {
> + virtio_serial_throttle_port(port, true);
> + }
> }This looks wrong. It will loose data in the case of a partial write (i.e. ret < len) Paul
