qemu/include/hw/virtio
Stefan Hajnoczi f5ed36635d virtio: stop virtqueue processing if device is broken
QEMU prints an error message and exits when the device enters an invalid
state.  Terminating the process is heavy-handed.  The guest may still be
able to function even if there is a bug in a virtio guest driver.

Moreover, exiting is a bug in nested virtualization where a nested guest
could DoS other nested guests by killing a pass-through virtio device.
I don't think this configuration is possible today but it is likely in
the future.

If the broken flag is set, do not process virtqueues or write back used
descriptors.  The broken flag can be cleared again by resetting the
device.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-09-23 19:03:55 +03:00
..
vhost-backend.h vhost-vsock: add virtio sockets device 2016-09-10 00:28:08 +03:00
vhost-scsi.h vhost-scsi: include linux/vhost.h 2015-09-25 12:04:41 +02:00
vhost-vsock.h vhost-vsock: add virtio sockets device 2016-09-10 00:28:08 +03:00
vhost.h vhost: add vhost_net_set_backend() 2016-07-29 00:33:49 +03:00
virtio-access.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-balloon.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-blk.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-bus.h virtio: fixes 2016-09-19 11:23:20 +01:00
virtio-gpu.h virtio-gpu: fix missing log.h include file 2016-08-16 11:21:31 +01:00
virtio-input.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-net.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-rng.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio-scsi.h virtio-scsi: Replace HandleOutput typedef 2016-07-21 20:44:19 +03:00
virtio-serial.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
virtio.h virtio: stop virtqueue processing if device is broken 2016-09-23 19:03:55 +03:00