Comments
Patch
@@ -495,6 +495,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);
+ VirtIOSerialPortInfo *info =
+ port ? DO_UPCAST(VirtIOSerialPortInfo, qdev, port->dev.info) : NULL;
+
+ if (info && info->guest_ready) {
+ info->guest_ready(port);
+ }
}
static uint32_t get_features(VirtIODevice *vdev, uint32_t features)
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.zaborowski@intel.com> --- hw/virtio-serial-bus.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)