Message ID | 20231110043916.1116-1-wubinfeng@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Fix segmentation fault when VM shutdown with virtio-gpu unplugged | expand |
On Fri, Nov 10, 2023 at 12:39:16PM +0800, Binfeng Wu wrote: > From: wangmeiling <wangmeiling21@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: wangmeiling21@huawei.com > Signed-off-by: wubinfeng@huawei.com You need to add your real names, not just email. With that: Acked-by: Michael S. Tsirkin <mst@redhat.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
Sorry for this mistake. Please check now. Please let us know if we need resubmit it. From e798cf68b1a4043dcf8dda9b895812c1dab88da2 Mon Sep 17 00:00:00 2001 From: wangmeiling <wangmeiling21@huawei.com> Date: Fri, 10 Nov 2023 10:17:54 +0800 Subject: [PATCH] Fix segmentation fault when VM shutdown with virtio-gpu unplugged 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: wangmeiling <wangmeiling21@huawei.com> Signed-off-by: wubinfeng <wubinfeng@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 在 2023/11/10 13:40, Michael S. Tsirkin 写道: > On Fri, Nov 10, 2023 at 12:39:16PM +0800, Binfeng Wu wrote: >> From: wangmeiling <wangmeiling21@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: wangmeiling21@huawei.com >> Signed-off-by: wubinfeng@huawei.com > > You need to add your real names, not just email. > > With that: > Acked-by: Michael S. Tsirkin <mst@redhat.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 > > > . >
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); }