[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 30/41] virtio-bus: introduce queue_enabled method
From: |
Michael S. Tsirkin |
Subject: |
[PULL 30/41] virtio-bus: introduce queue_enabled method |
Date: |
Fri, 3 Jul 2020 05:04:50 -0400 |
From: Jason Wang <jasowang@redhat.com>
This patch introduces queue_enabled() method which allows the
transport to implement its own way to report whether or not a queue is
enabled.
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Cindy Lu <lulu@redhat.com>
Message-Id: <20200701145538.22333-4-lulu@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
---
include/hw/virtio/virtio-bus.h | 4 ++++
hw/virtio/virtio.c | 6 ++++++
2 files changed, 10 insertions(+)
diff --git a/include/hw/virtio/virtio-bus.h b/include/hw/virtio/virtio-bus.h
index 38c9399cd4..0f6f215925 100644
--- a/include/hw/virtio/virtio-bus.h
+++ b/include/hw/virtio/virtio-bus.h
@@ -83,6 +83,10 @@ typedef struct VirtioBusClass {
*/
int (*ioeventfd_assign)(DeviceState *d, EventNotifier *notifier,
int n, bool assign);
+ /*
+ * Whether queue number n is enabled.
+ */
+ bool (*queue_enabled)(DeviceState *d, int n);
/*
* Does the transport have variable vring alignment?
* (ie can it ever call virtio_queue_set_align()?)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index cc9c9dc162..5bd2a2f621 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -3286,6 +3286,12 @@ hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev,
int n)
bool virtio_queue_enabled(VirtIODevice *vdev, int n)
{
+ BusState *qbus = qdev_get_parent_bus(DEVICE(vdev));
+ VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus);
+
+ if (k->queue_enabled) {
+ return k->queue_enabled(qbus->parent, n);
+ }
return virtio_queue_get_desc_addr(vdev, n) != 0;
}
--
MST
- [PULL 20/41] virtio-pci: Send qapi events when the virtio-mem size changes, (continued)
- [PULL 20/41] virtio-pci: Send qapi events when the virtio-mem size changes, Michael S. Tsirkin, 2020/07/03
- [PULL 21/41] virtio-mem: Migration sanity checks, Michael S. Tsirkin, 2020/07/03
- [PULL 22/41] virtio-mem: Add trace events, Michael S. Tsirkin, 2020/07/03
- [PULL 23/41] virtio-mem: Exclude unplugged memory during migration, Michael S. Tsirkin, 2020/07/03
- [PULL 25/41] tests/acpi: remove stale allowed tables, Michael S. Tsirkin, 2020/07/03
- [PULL 26/41] docs: vhost-user: add Virtio status protocol feature, Michael S. Tsirkin, 2020/07/03
- [PULL 24/41] numa: Auto-enable NUMA when any memory devices are possible, Michael S. Tsirkin, 2020/07/03
- [PULL 27/41] MAINTAINERS: add VT-d entry, Michael S. Tsirkin, 2020/07/03
- [PULL 28/41] net: introduce qemu_get_peer, Michael S. Tsirkin, 2020/07/03
- [PULL 29/41] vhost_net: use the function qemu_get_peer, Michael S. Tsirkin, 2020/07/03
- [PULL 30/41] virtio-bus: introduce queue_enabled method,
Michael S. Tsirkin <=
- [PULL 31/41] virtio-pci: implement queue_enabled method, Michael S. Tsirkin, 2020/07/03
- [PULL 32/41] vhost: check the existence of vhost_set_iotlb_callback, Michael S. Tsirkin, 2020/07/03
- [PULL 33/41] vhost: introduce new VhostOps vhost_dev_start, Michael S. Tsirkin, 2020/07/03
- [PULL 34/41] vhost: implement vhost_dev_start method, Michael S. Tsirkin, 2020/07/03
- [PULL 35/41] vhost: introduce new VhostOps vhost_vq_get_addr, Michael S. Tsirkin, 2020/07/03
- [PULL 36/41] vhost: implement vhost_vq_get_addr method, Michael S. Tsirkin, 2020/07/03
- [PULL 37/41] vhost: introduce new VhostOps vhost_force_iommu, Michael S. Tsirkin, 2020/07/03
- [PULL 39/41] vhost_net: introduce set_config & get_config, Michael S. Tsirkin, 2020/07/03
- [PULL 40/41] vhost-vdpa: introduce vhost-vdpa backend, Michael S. Tsirkin, 2020/07/03