File xen-remove-BlockBackend-object-reference.patch of Package qemu.21548
From: Lin Ma <lma@suse.com>
Date: Fri, 3 Sep 2021 12:05:09 +0800
Subject: xen: remove BlockBackend object reference in xen_block_unrealize
References: bsc#1189234
Signed-off-by: Lin Ma <lma@suse.com>
---
hw/block/xen-block.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index a06251da2fb61ab7253676183b60..7667076ffd490f382516a6258f08 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -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);
}