Without that it's impossible to write a virtio-serial port driver that sends any buffers bigger than a couple kilobytes, other than by polling to check when space in the queue becomes available.
Signed-off-by: Andrzej Zaborowski <andrew.zaborow...@intel.com> --- v2: rebase after QOM. --- hw/virtio-serial-bus.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index e22940e..fe350a1 100644 --- a/hw/virtio-serial-bus.c +++ b/hw/virtio-serial-bus.c @@ -498,6 +498,14 @@ static void handle_output(VirtIODevice *vdev, VirtQueue *vq) static void handle_input(VirtIODevice *vdev, VirtQueue *vq) { + VirtIOSerial *vser = DO_UPCAST(VirtIOSerial, vdev, vdev); + VirtIOSerialPort *port = find_port_by_vq(vser, vq); + VirtIOSerialPortClass *info = + port ? VIRTIO_SERIAL_PORT_GET_CLASS(port) : NULL; + + if (info && info->guest_ready) { + info->guest_ready(port); + } } static uint32_t get_features(VirtIODevice *vdev, uint32_t features) -- 1.7.4.4