mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
virtio: merge virtio_queue_aio_set_host_notifier_handler with virtio_queue_set_aio
Eliminating the reentrancy is actually a nice thing that we can do with the API that Michael proposed, so let's make it first class. This also hides the complex assign/set_handler conventions from callers of virtio_queue_aio_set_host_notifier_handler, which in fact was always called with assign=true. Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
a8f2e5c8ff
commit
a378b49a43
4 changed files with 14 additions and 28 deletions
|
@ -237,8 +237,8 @@ void virtio_blk_data_plane_start(VirtIOBlockDataPlane *s)
|
|||
|
||||
/* Get this show started by hooking up our callbacks */
|
||||
aio_context_acquire(s->ctx);
|
||||
virtio_set_queue_aio(s->vq, virtio_blk_data_plane_handle_output);
|
||||
virtio_queue_aio_set_host_notifier_handler(s->vq, s->ctx, true, true);
|
||||
virtio_queue_aio_set_host_notifier_handler(s->vq, s->ctx,
|
||||
virtio_blk_data_plane_handle_output);
|
||||
aio_context_release(s->ctx);
|
||||
return;
|
||||
|
||||
|
@ -273,8 +273,7 @@ void virtio_blk_data_plane_stop(VirtIOBlockDataPlane *s)
|
|||
aio_context_acquire(s->ctx);
|
||||
|
||||
/* Stop notifications for new requests from guest */
|
||||
virtio_queue_aio_set_host_notifier_handler(s->vq, s->ctx, false, false);
|
||||
virtio_set_queue_aio(s->vq, NULL);
|
||||
virtio_queue_aio_set_host_notifier_handler(s->vq, s->ctx, NULL);
|
||||
|
||||
/* Drain and switch bs back to the QEMU main loop */
|
||||
blk_set_aio_context(s->conf->conf.blk, qemu_get_aio_context());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue