summary refs log tree commit diff stats
path: root/hw/arm/virt.c
diff options
context:
space:
mode:
authorJohn Levon <john.levon@nutanix.com>2020-11-20 18:51:07 +0000
committerMichael S. Tsirkin <mst@redhat.com>2020-12-08 13:48:57 -0500
commit4aedda25e883c7c2e7cae911e39b84ad96ef4766 (patch)
tree0b3bb57ec003d8db04487ee269287c6a845ebba5 /hw/arm/virt.c
parent1804857f19f612f6907832e35599cdb51d4ec764 (diff)
downloadfocaccia-qemu-4aedda25e883c7c2e7cae911e39b84ad96ef4766.tar.gz
focaccia-qemu-4aedda25e883c7c2e7cae911e39b84ad96ef4766.zip
virtio: reset device on bad guest index in virtio_load()
If we find a queue with an inconsistent guest index value, explicitly mark the
device as needing a reset - and broken - via virtio_error().

There's at least one driver implementation - the virtio-win NetKVM driver - that
is able to handle a VIRTIO_CONFIG_S_NEEDS_RESET notification and successfully
restore the device to a working state. Other implementations do not correctly
handle this, but as the VQ is not in a functional state anyway, this is still
worth doing.

Signed-off-by: John Levon <john.levon@nutanix.com>
Message-Id: <20201120185103.GA442386@sent>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/arm/virt.c')
0 files changed, 0 insertions, 0 deletions