From: wangmeiling <wangmeilin...@huawei.com>

In the virtio-gpu unrealize process, the vdev structure has been cleaned up.
However, vm_change_state_handler is not cleaned up yet, which is related to
vdev. This handler will be cleaned up when VM shutdown, but the vdev is
already a null pointer at this time, this will lead to segmentation fault.

Signed-off-by: wangmeilin...@huawei.com
Signed-off-by: wubinf...@huawei.com
---
 hw/display/virtio-gpu-base.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/hw/display/virtio-gpu-base.c b/hw/display/virtio-gpu-base.c
index 37af256219..b31b8d683f 100644
--- a/hw/display/virtio-gpu-base.c
+++ b/hw/display/virtio-gpu-base.c
@@ -252,6 +252,8 @@ virtio_gpu_base_device_unrealize(DeviceState *qdev)
 {
     VirtIOGPUBase *g = VIRTIO_GPU_BASE(qdev);
 
+    virtio_cleanup(VIRTIO_DEVICE(g));
+
     migrate_del_blocker(&g->migration_blocker);
 }
 
-- 
2.20.1


Reply via email to