qemu/hw/virtio
Jean-Philippe Brucker 351da8323a virtio-mmio: Clear v2 transport state on soft reset
At the moment when the guest writes a status of 0, we only reset the
virtio core state but not the virtio-mmio state. The virtio-mmio
specification says (v1.1 cs01, 4.2.2.1 Device Requirements:
MMIO Device Register Layout):

    Upon reset, the device MUST clear all bits in InterruptStatus and
    ready bits in the QueueReady register for all queues in the device.

The core already takes care of InterruptStatus by clearing isr, but we
still need to clear QueueReady.

It would be tempting to clean all registers, but since the specification
doesn't say anything more, guests could rely on the registers keeping
their state across reset. Linux for example, relies on this for
GuestPageSize in the legacy MMIO tranport.

Fixes: 44e687a4d9 ("virtio-mmio: implement modern (v2) personality (virtio-1)")
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Message-Id: <20191213095410.1516119-1-jean-philippe@linaro.org>
Reviewed-by: Sergio Lopez <slp@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2020-01-05 07:03:03 -05:00
..
Kconfig configure: simplify vhost condition with Kconfig 2019-12-17 19:32:48 +01:00
Makefile.objs configure: simplify vhost condition with Kconfig 2019-12-17 19:32:48 +01:00
trace-events hw/virtio/virtio-mmio: Convert DPRINTF to trace and log 2019-05-22 15:33:20 +02:00
vhost-backend.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
vhost-scsi-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
vhost-stub.c vhost-user: simplify vhost_user_init/vhost_user_cleanup 2019-03-12 21:22:31 -04:00
vhost-user-blk-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
vhost-user-fs-pci.c virtio-fs: fix MSI-X nvectors calculation 2019-12-13 10:53:57 +00:00
vhost-user-fs.c vhost-user-fs: remove "vhostfd" property 2019-12-13 10:38:58 +00:00
vhost-user-input-pci.c Add vhost-user-input-pci 2019-05-10 14:52:47 +02:00
vhost-user-scsi-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
vhost-user.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
vhost-vsock-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
vhost-vsock.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
vhost.c virtio/vhost: Use auto_rcu_read macros 2019-10-29 18:56:45 -04:00
virtio-9p-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
virtio-balloon-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
virtio-balloon.c virtio-balloon: fix memory leak while attach virtio-balloon device 2020-01-05 07:03:03 -05:00
virtio-blk-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
virtio-bus.c virtio: notify virtqueue via host notifier when available 2019-11-06 06:35:00 -05:00
virtio-crypto-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
virtio-crypto.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
virtio-input-host-pci.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
virtio-input-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
virtio-mmio.c virtio-mmio: Clear v2 transport state on soft reset 2020-01-05 07:03:03 -05:00
virtio-net-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
virtio-pci.c virtio-pci: disable vring processing when bus-mastering is disabled 2020-01-05 07:03:03 -05:00
virtio-pci.h virtio-pci: Add Function Level Reset support 2019-09-04 06:33:10 -04:00
virtio-pmem-pci.c virtio pmem: remove transitional names 2019-07-12 10:57:27 -04:00
virtio-pmem-pci.h virtio-pci: Proxy for virtio-pmem 2019-07-04 17:00:32 -04:00
virtio-pmem.c Include sysemu/hostmem.h less 2019-08-16 13:31:53 +02:00
virtio-rng-pci.c Include qemu/module.h where needed, drop it from qemu-common.h 2019-06-12 13:18:33 +02:00
virtio-rng.c virtio: Free rnd virqueue at unrealize() 2019-10-25 07:46:22 -04:00
virtio-scsi-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
virtio-serial-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
virtio.c virtio: don't enable notifications during polling 2020-01-05 07:03:03 -05:00