qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH for-2.4] block: delete bottom halves before the


From: Cornelia Huck
Subject: Re: [Qemu-devel] [PATCH for-2.4] block: delete bottom halves before the AioContext is freed
Date: Tue, 28 Jul 2015 15:11:36 +0200

On Tue, 28 Jul 2015 14:30:28 +0200
Paolo Bonzini <address@hidden> wrote:

> diff --git a/async.c b/async.c
> index 9ca7095..efce14b 100644
> --- a/async.c
> +++ b/async.c
> @@ -233,6 +233,7 @@ aio_ctx_finalize(GSource     *source)
>      AioContext *ctx = (AioContext *) source;
> 
>      qemu_bh_delete(ctx->notify_dummy_bh);
> +    thread_pool_free(ctx->thread_pool);
> 
>      qemu_mutex_lock(&ctx->bh_lock);
>      while (ctx->first_bh) {
> @@ -246,7 +247,6 @@ aio_ctx_finalize(GSource     *source)
>      }
>      qemu_mutex_unlock(&ctx->bh_lock);
> 
> -    thread_pool_free(ctx->thread_pool);
>      aio_set_event_notifier(ctx, &ctx->notifier, NULL);
>      event_notifier_cleanup(&ctx->notifier);
>      rfifolock_destroy(&ctx->lock);
> diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c
> index 3db139b..6106e46 100644
> --- a/hw/block/dataplane/virtio-blk.c
> +++ b/hw/block/dataplane/virtio-blk.c
> @@ -223,8 +223,8 @@ void virtio_blk_data_plane_destroy(VirtIOBlockDataPlane 
> *s)
>      virtio_blk_data_plane_stop(s);
>      blk_op_unblock_all(s->conf->conf.blk, s->blocker);
>      error_free(s->blocker);
> -    object_unref(OBJECT(s->iothread));
>      qemu_bh_delete(s->bh);
> +    object_unref(OBJECT(s->iothread));
>      g_free(s);
>  }
> 

With this applied on top of Stefan's AioContext patches, both
managedsave and device_del with dataplane devices work for me.

Tested-by: Cornelia Huck <address@hidden>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]