qemu-e2k/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
vhost-backend.c
vhost-scsi-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
vhost-stub.c
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
vhost-user-scsi-pci.c Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
vhost-user.c
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
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-pci.h
virtio-pmem.c Include sysemu/hostmem.h less 2019-08-16 13:31:53 +02:00
virtio-rng-pci.c
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