Re: [PATCH v6 02/10] vhost: set SVQ device call handler at SVQ start

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 9, 2022 at 1:08 AM Eugenio Pérez <eperezma@xxxxxxxxxx> wrote:
>
> By the end of this series CVQ is shadowed as long as the features
> support it.
>
> Since we don't know at the beginning of qemu running if this is
> supported, move the event notifier handler setting to the start of the
> SVQ, instead of the start of qemu run.
>
> Signed-off-by: Eugenio Pérez <eperezma@xxxxxxxxxx>

Acked-by: Jason Wang <jasowang@xxxxxxxxxx>

Thanks

> ---
>  hw/virtio/vhost-shadow-virtqueue.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/virtio/vhost-shadow-virtqueue.c b/hw/virtio/vhost-shadow-virtqueue.c
> index 5bd14cad96..264ddc166d 100644
> --- a/hw/virtio/vhost-shadow-virtqueue.c
> +++ b/hw/virtio/vhost-shadow-virtqueue.c
> @@ -648,6 +648,7 @@ void vhost_svq_start(VhostShadowVirtqueue *svq, VirtIODevice *vdev,
>  {
>      size_t desc_size, driver_size, device_size;
>
> +    event_notifier_set_handler(&svq->hdev_call, vhost_svq_handle_call);
>      svq->next_guest_avail_elem = NULL;
>      svq->shadow_avail_idx = 0;
>      svq->shadow_used_idx = 0;
> @@ -704,6 +705,7 @@ void vhost_svq_stop(VhostShadowVirtqueue *svq)
>      g_free(svq->desc_state);
>      qemu_vfree(svq->vring.desc);
>      qemu_vfree(svq->vring.used);
> +    event_notifier_set_handler(&svq->hdev_call, NULL);
>  }
>
>  /**
> @@ -740,7 +742,6 @@ VhostShadowVirtqueue *vhost_svq_new(VhostIOVATree *iova_tree,
>      }
>
>      event_notifier_init_fd(&svq->svq_kick, VHOST_FILE_UNBIND);
> -    event_notifier_set_handler(&svq->hdev_call, vhost_svq_handle_call);
>      svq->iova_tree = iova_tree;
>      svq->ops = ops;
>      svq->ops_opaque = ops_opaque;
> @@ -763,7 +764,6 @@ void vhost_svq_free(gpointer pvq)
>      VhostShadowVirtqueue *vq = pvq;
>      vhost_svq_stop(vq);
>      event_notifier_cleanup(&vq->hdev_kick);
> -    event_notifier_set_handler(&vq->hdev_call, NULL);
>      event_notifier_cleanup(&vq->hdev_call);
>      g_free(vq);
>  }
> --
> 2.31.1
>





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux