diff options
| author | John Levon | 2020-11-20 19:51:07 +0100 |
|---|---|---|
| committer | Michael S. Tsirkin | 2020-12-08 19:48:57 +0100 |
| commit | 4aedda25e883c7c2e7cae911e39b84ad96ef4766 (patch) | |
| tree | 0b3bb57ec003d8db04487ee269287c6a845ebba5 /include/hw | |
| parent | memory: Skip bad range assertion if notifier is DEVIOTLB_UNMAP type (diff) | |
| download | qemu-4aedda25e883c7c2e7cae911e39b84ad96ef4766.tar.gz qemu-4aedda25e883c7c2e7cae911e39b84ad96ef4766.tar.xz 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 'include/hw')
0 files changed, 0 insertions, 0 deletions
