diff options
author | Gal Hammer | 2018-01-14 11:06:55 +0100 |
---|---|---|
committer | Michael S. Tsirkin | 2018-01-18 20:52:37 +0100 |
commit | 4fe6d78b2e241f41208dfb07605aace4becfc747 (patch) | |
tree | 85a395c6e7f764185229f3e190daa87db314fd51 /accel/kvm | |
parent | qemu: add a cleanup callback function to EventNotifier (diff) | |
download | qemu-4fe6d78b2e241f41208dfb07605aace4becfc747.tar.gz qemu-4fe6d78b2e241f41208dfb07605aace4becfc747.tar.xz qemu-4fe6d78b2e241f41208dfb07605aace4becfc747.zip |
virtio: postpone the execution of event_notifier_cleanup function
Use the EventNotifier's cleanup callback function to execute the
event_notifier_cleanup function after kvm unregistered the eventfd.
This change supports running the virtio_bus_set_host_notifier
function inside a memory region transaction. Otherwise, a closed
fd is sent to kvm, which results in a failure.
Signed-off-by: Gal Hammer <ghammer@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'accel/kvm')
-rw-r--r-- | accel/kvm/kvm-all.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index f290f487a5..071f4f57c0 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -812,6 +812,10 @@ static void kvm_mem_ioeventfd_del(MemoryListener *listener, if (r < 0) { abort(); } + + if (e->cleanup) { + e->cleanup(e); + } } static void kvm_io_ioeventfd_add(MemoryListener *listener, |