diff options
author | Kangjie Xu <kangjie.xu@linux.alibaba.com> | 2022-10-17 17:25:47 +0800 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2022-11-07 13:12:20 -0500 |
commit | 69e1c14aa22284f933a6ea134b96d5cb5a88a94d (patch) | |
tree | 069835138fa0dff571781a1634dce2ea0f826d0c | |
parent | 3c37f8b8d1e5f524c9d04d3e1d8125334e93e2eb (diff) | |
download | qemu-69e1c14aa22284f933a6ea134b96d5cb5a88a94d.zip qemu-69e1c14aa22284f933a6ea134b96d5cb5a88a94d.tar.gz qemu-69e1c14aa22284f933a6ea134b96d5cb5a88a94d.tar.bz2 |
virtio: core: vq reset feature negotation support
A a new command line parameter "queue_reset" is added.
Meanwhile, the vq reset feature is disabled for pre-7.2 machines.
Signed-off-by: Kangjie Xu <kangjie.xu@linux.alibaba.com>
Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20221017092558.111082-5-xuanzhuo@linux.alibaba.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | hw/core/machine.c | 4 | ||||
-rw-r--r-- | include/hw/virtio/virtio.h | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/hw/core/machine.c b/hw/core/machine.c index aa520e7..907fa78 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -40,7 +40,9 @@ #include "hw/virtio/virtio-pci.h" #include "qom/object_interfaces.h" -GlobalProperty hw_compat_7_1[] = {}; +GlobalProperty hw_compat_7_1[] = { + { "virtio-device", "queue_reset", "false" }, +}; const size_t hw_compat_7_1_len = G_N_ELEMENTS(hw_compat_7_1); GlobalProperty hw_compat_7_0[] = { diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index b00b3fc..1423dba 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -313,7 +313,9 @@ typedef struct VirtIORNGConf VirtIORNGConf; DEFINE_PROP_BIT64("iommu_platform", _state, _field, \ VIRTIO_F_IOMMU_PLATFORM, false), \ DEFINE_PROP_BIT64("packed", _state, _field, \ - VIRTIO_F_RING_PACKED, false) + VIRTIO_F_RING_PACKED, false), \ + DEFINE_PROP_BIT64("queue_reset", _state, _field, \ + VIRTIO_F_RING_RESET, true) hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n); bool virtio_queue_enabled_legacy(VirtIODevice *vdev, int n); |