qemu-irix/include/hw
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
..
acpi
arm aspeed-soc: provide a framework to add new SoCs 2016-09-22 18:13:05 +01:00
audio
block
char
cpu
cris
display
dma dma: xlnx-zynq-devcfg: Fix up XLNX_ZYNQ_DEVCFG_R_MAX 2016-09-22 18:13:08 +01:00
gpio
i2c
i386 target-i386: turn off CPU.l3-cache only for 2.7 and older machine types 2016-09-23 18:51:40 +03:00
ide portio: keep references on portio 2016-09-08 18:05:21 +04:00
input adb-keys.h: initial commit 2016-09-23 10:29:40 +10:00
intc
ipack
ipmi
isa portio: keep references on portio 2016-09-08 18:05:21 +04:00
kvm
lm32
m68k
mem
mips
misc aspeed: add a ram_size property to the memory controller 2016-09-22 18:13:06 +01:00
net cadence_gem: Add support for screening 2016-09-22 18:13:07 +01:00
nvram
pci Remove unused function declarations 2016-09-15 15:32:22 +03:00
pci-host spapr_pci: Add numa node id 2016-09-23 12:39:07 +10:00
ppc ppc/xics: An ICS with offset 0 is assumed to be uninitialized 2016-09-23 12:39:07 +10:00
s390x s390x/kvm: disable cpu model for the 2.7 machine 2016-09-19 11:05:51 +02:00
scsi Remove unused function declarations 2016-09-15 15:32:22 +03:00
sd
sh4
smbios
sparc
ssi
timer
tricore
unicore32
usb
vfio
virtio virtio: stop virtqueue processing if device is broken 2016-09-23 19:03:55 +03:00
watchdog
xen
boards.h machine: use class base init generated name 2016-09-08 18:05:21 +04:00
bt.h Remove unused function declarations 2016-09-15 15:32:22 +03:00
compat.h virtio-pci: reduce modern_mem_bar size 2016-09-09 20:58:34 +03:00
devices.h
elf_ops.h loader: Add AddressSpace loading support to ELFs 2016-09-22 18:13:08 +01:00
empty_slot.h
fw-path-provider.h
hotplug.h
hw.h
ide.h
irq.h
loader.h loader: Add AddressSpace loading support to targphys 2016-09-22 18:13:08 +01:00
nmi.h
pcmcia.h
platform-bus.h
ptimer.h hw/ptimer: Introduce timer policy feature 2016-09-22 18:13:06 +01:00
qdev-core.h bus: simplify name handling 2016-09-08 18:05:22 +04:00
qdev-dma.h
qdev-properties.h
qdev.h
register.h
stream.h
sysbus.h
usb.h