diff options
| author | Eugenio Pérez <eperezma@redhat.com> | 2022-07-20 08:59:39 +0200 |
|---|---|---|
| committer | Jason Wang <jasowang@redhat.com> | 2022-07-20 16:58:08 +0800 |
| commit | e966c0b781aebabd2c0f5eef91678f08ce1d068c (patch) | |
| tree | 84162843e8ad1706d82cda1bde20accbfdee3372 /hw/virtio/vhost-vdpa.c | |
| parent | 3f44d13dda83d390cc9563e56e7d337e4f6223f4 (diff) | |
| download | focaccia-qemu-e966c0b781aebabd2c0f5eef91678f08ce1d068c.tar.gz focaccia-qemu-e966c0b781aebabd2c0f5eef91678f08ce1d068c.zip | |
vhost: Add svq avail_handler callback
This allows external handlers to be aware of new buffers that the guest places in the virtqueue. When this callback is defined the ownership of the guest's virtqueue element is transferred to the callback. This means that if the user wants to forward the descriptor it needs to manually inject it. The callback is also free to process the command by itself and use the element with svq_push. Signed-off-by: Eugenio Pérez <eperezma@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
Diffstat (limited to 'hw/virtio/vhost-vdpa.c')
| -rw-r--r-- | hw/virtio/vhost-vdpa.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c index 66f054a12c..0b13e98471 100644 --- a/hw/virtio/vhost-vdpa.c +++ b/hw/virtio/vhost-vdpa.c @@ -418,8 +418,9 @@ static int vhost_vdpa_init_svq(struct vhost_dev *hdev, struct vhost_vdpa *v, shadow_vqs = g_ptr_array_new_full(hdev->nvqs, vhost_svq_free); for (unsigned n = 0; n < hdev->nvqs; ++n) { - g_autoptr(VhostShadowVirtqueue) svq = vhost_svq_new(v->iova_tree); + g_autoptr(VhostShadowVirtqueue) svq; + svq = vhost_svq_new(v->iova_tree, NULL, NULL); if (unlikely(!svq)) { error_setg(errp, "Cannot create svq %u", n); return -1; |