xen: remove BlockBackend object reference in xen_block_unrealize
authorLin Ma <lma@suse.com>
Fri, 3 Sep 2021 04:05:09 +0000 (12:05 +0800)
committerwanchao-xu <wanchao.xu@samsung.com>
Tue, 9 Jan 2024 11:56:53 +0000 (19:56 +0800)
References: bsc#1189234

Signed-off-by: Lin Ma <lma@suse.com>
hw/block/xen-block.c

index a06251da2fb61ab7253676183b6021639602f2b3..7667076ffd490f382516a6258f089f45cc6ca7a5 100644 (file)
@@ -142,6 +142,7 @@ static void xen_block_unrealize(XenDevice *xendev, Error **errp)
         XEN_BLOCK_DEVICE_GET_CLASS(xendev);
     const char *type = object_get_typename(OBJECT(blockdev));
     XenBlockVdev *vdev = &blockdev->props.vdev;
+    BlockConf *conf = &blockdev->props.conf;
 
     if (vdev->type == XEN_BLOCK_VDEV_TYPE_INVALID) {
         return;
@@ -155,6 +156,8 @@ static void xen_block_unrealize(XenDevice *xendev, Error **errp)
     xen_block_dataplane_destroy(blockdev->dataplane);
     blockdev->dataplane = NULL;
 
+    monitor_remove_blk(conf->blk);
+
     if (blockdev_class->unrealize) {
         blockdev_class->unrealize(blockdev, errp);
     }