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 acpi: add DMAR scope definition for root IOAPIC 2016-07-20 19:30:27 +03:00
arm aspeed-soc: provide a framework to add new SoCs 2016-09-22 18:13:05 +01:00
audio Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
block block/qdev: Allow configuring rerror/werror with qdev properties 2016-07-13 13:32:27 +02:00
char Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
cpu qapi: keep names in 'CpuInstanceProperties' in sync with struct CPUCore 2016-06-27 13:15:06 +10:00
cris Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
display Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
dma dma: xlnx-zynq-devcfg: Fix up XLNX_ZYNQ_DEVCFG_R_MAX 2016-09-22 18:13:08 +01:00
gpio Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
i2c Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
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 gic: provide defines for v2/v3 targetlist sizes 2016-07-14 16:51:37 +01:00
ipack ipack: Update e-mail address 2016-05-18 15:04:27 +03:00
ipmi ipmi: rework the fwinfo to be fetched from the interface 2016-06-07 15:36:54 +03:00
isa portio: keep references on portio 2016-09-08 18:05:21 +04:00
kvm
lm32
m68k m68k: include cpu-qom.h in files that require M68KCPU 2016-05-19 16:42:27 +02:00
mem nvdimm: support nvdimm label 2016-06-24 05:13:57 +03:00
mips hw/mips/cps: create GIC block inside CPS 2016-07-12 09:10:13 +01:00
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 * Updated fw_cfg option ROM to include DMA support 2016-07-14 16:49:18 +01:00
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 Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
sh4 Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
smbios Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
sparc Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
ssi Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
timer Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
tricore Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
unicore32 Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
usb Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
vfio Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
virtio virtio: stop virtqueue processing if device is broken 2016-09-23 19:03:55 +03:00
watchdog Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
xen xen: handle inbound migration of VMs without ioreq server pages 2016-08-12 16:38:30 -07:00
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 Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
fw-path-provider.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
hotplug.h qdev: hotplug: Introduce HotplugHandler.pre_plug() callback 2016-06-17 16:33:48 +10:00
hw.h hw: clean up hw/hw.h includes 2016-05-19 16:42:30 +02:00
ide.h
irq.h
loader.h loader: Add AddressSpace loading support to targphys 2016-09-22 18:13:08 +01:00
nmi.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
pcmcia.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
platform-bus.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
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 block/qdev: Allow configuring rerror/werror with qdev properties 2016-07-13 13:32:27 +02:00
qdev.h
register.h register: Add block initialise helper 2016-07-04 13:15:22 +01:00
stream.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
sysbus.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
usb.h usb: Add QOM property "attached". 2016-06-22 12:53:26 +02:00