summary refs log tree commit diff stats
path: root/hw/virtio/vhost.c
diff options
context:
space:
mode:
authorGal Hammer <ghammer@redhat.com>2018-01-29 16:20:56 +0200
committerMichael S. Tsirkin <mst@redhat.com>2018-02-08 21:06:26 +0200
commit76143618a5a9f33e8bc968f27b3de79d79a286c5 (patch)
treeeceecea7479562ed49a60aeaa8aa0e1522031c65 /hw/virtio/vhost.c
parentf41d912023e777d95e782a1ade6338c5fed8b842 (diff)
downloadfocaccia-qemu-76143618a5a9f33e8bc968f27b3de79d79a286c5.tar.gz
focaccia-qemu-76143618a5a9f33e8bc968f27b3de79d79a286c5.zip
virtio: remove event notifier cleanup call on de-assign
The virtio_bus_set_host_notifier function no longer calls
event_notifier_cleanup when a event notifier is removed.

The commit updates the code to match the new behavior and calls
virtio_bus_cleanup_host_notifier after the notifier was de-assign
and no longer in use.

This change is a preparation to allow executing the
virtio_bus_set_host_notifier function in a memory region
transaction.

Signed-off-by: Gal Hammer <ghammer@redhat.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Tested-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw/virtio/vhost.c')
-rw-r--r--hw/virtio/vhost.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
index 23b9e17675..56885aaf13 100644
--- a/hw/virtio/vhost.c
+++ b/hw/virtio/vhost.c
@@ -1418,6 +1418,7 @@ fail_vq:
             error_report("vhost VQ %d notifier cleanup error: %d", i, -r);
         }
         assert (e >= 0);
+        virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), hdev->vq_index + i);
     }
     virtio_device_release_ioeventfd(vdev);
 fail:
@@ -1441,6 +1442,7 @@ void vhost_dev_disable_notifiers(struct vhost_dev *hdev, VirtIODevice *vdev)
             error_report("vhost VQ %d notifier cleanup failed: %d", i, -r);
         }
         assert (r >= 0);
+        virtio_bus_cleanup_host_notifier(VIRTIO_BUS(qbus), hdev->vq_index + i);
     }
     virtio_device_release_ioeventfd(vdev);
 }