summary refs log tree commit diff stats
path: root/hw/xen/xen_pt_msi.c
diff options
context:
space:
mode:
authorAkihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>2025-09-24 13:37:26 +0900
committerPaolo Bonzini <pbonzini@redhat.com>2025-09-24 09:23:20 +0200
commit46a8624fa7d116989389867f534b07ee562ebb1e (patch)
tree29a9be5b16458b733ca5d0bad7f040e2cd32c846 /hw/xen/xen_pt_msi.c
parent9b80f8a8e758b427501e6bcbcb114ae45ff68387 (diff)
downloadfocaccia-qemu-46a8624fa7d116989389867f534b07ee562ebb1e.tar.gz
focaccia-qemu-46a8624fa7d116989389867f534b07ee562ebb1e.zip
hw/xen: Do not unparent in instance_finalize()
Children are automatically unparented so manually unparenting is
unnecessary.

Worse, automatic unparenting happens before the instance_finalize()
callback of the parent gets called, so object_unparent() calls in
the callback will refer to objects that are already unparented, which
is semantically incorrect.

Signed-off-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Link: https://lore.kernel.org/r/20250924-use-v4-7-07c6c598f53d@rsg.ci.i.u-tokyo.ac.jp
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/xen/xen_pt_msi.c')
-rw-r--r--hw/xen/xen_pt_msi.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/hw/xen/xen_pt_msi.c b/hw/xen/xen_pt_msi.c
index 09cca4eecb..e9ba17317a 100644
--- a/hw/xen/xen_pt_msi.c
+++ b/hw/xen/xen_pt_msi.c
@@ -637,14 +637,5 @@ void xen_pt_msix_unmap(XenPCIPassthroughState *s)
 
 void xen_pt_msix_delete(XenPCIPassthroughState *s)
 {
-    XenPTMSIX *msix = s->msix;
-
-    if (!msix) {
-        return;
-    }
-
-    object_unparent(OBJECT(&msix->mmio));
-
-    g_free(s->msix);
-    s->msix = NULL;
+    g_clear_pointer(&s->msix, g_free);
 }