On Mon, May 18, 2020 at 1:37 AM David Hildenbrand <da...@redhat.com> wrote:
>
> We took a reference when realizing, so let's drop that reference when
> unrealizing.
>
> Fixes: c13c4153f76d ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT")
> Cc: Wei Wang <wei.w.w...@intel.com>
> Cc: Alexander Duyck <alexander.du...@gmail.com>
> Cc: Michael S. Tsirkin <m...@redhat.com>
> Cc: Philippe Mathieu-Daudé <phi...@redhat.com>
> Signed-off-by: David Hildenbrand <da...@redhat.com>
> ---
>  hw/virtio/virtio-balloon.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
> index a4fcf2d777..3f8fc50be0 100644
> --- a/hw/virtio/virtio-balloon.c
> +++ b/hw/virtio/virtio-balloon.c
> @@ -820,6 +820,7 @@ static void virtio_balloon_device_unrealize(DeviceState 
> *dev)
>
>      if (s->free_page_bh) {
>          qemu_bh_delete(s->free_page_bh);
> +        object_unref(OBJECT(s->iothread));
>          virtio_balloon_free_page_stop(s);
>          precopy_remove_notifier(&s->free_page_report_notify);
>      }

I'm not entirely sure about this order of operations. It seems like it
would make more sense to remove the notifier, stop the hinting, delete
the bh, and then release the IO thread.

Reply via email to