virtio-serial: Check if virtio queue is ready before consuming data
If a virtio-serial port is removed before the guest comes up and initialises the virtqueues, qemu exits with the message Guest moved used index from 0 to 61440 This happens because we try to clear any pending buffers from the virtqueue. Ensure the virtqueue is initialised before calling any virtqueue operations. Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
a03c54f16e
commit
6b611d3ab8
@ -139,6 +139,9 @@ static void flush_queued_data(VirtIOSerialPort *port, bool discard)
|
||||
{
|
||||
assert(port);
|
||||
|
||||
if (!virtio_queue_ready(port->ovq)) {
|
||||
return;
|
||||
}
|
||||
do_flush_queued_data(port, port->ovq, &port->vser->vdev, discard);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user