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 >