Supersedes: <[email protected]> ("[PATCH] docs/devel: Prohibit calling object_unparent() for memory region")
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 <[email protected]> --- Changes in v4: - Removed Based-on:. - Restored the examples of VFIOMSIXInfo and VFIOQuirk in docs/devel/memory.rst. - Ensured that the timing to call object_unparent() and free memory regions is mentioned once for each. - Link to v3: https://lore.kernel.org/qemu-devel/[email protected] Changes in v3: - Added patches to remove other object_unparent() calls in instance_finalize(). - Dropped patch "qdev: Automatically delete memory subregions" and the succeeding patches to avoid Ccing many. - Link to v2: https://lore.kernel.org/qemu-devel/[email protected] Changes in v2: - Added a reference to "[PATCH] docs/devel: Prohibit calling object_unparent() for memory region", which does something similar to patch "docs/devel: Do not unparent in instance_finalize()" but I forgot I sent it in the past. - Fixed a typo in patch "docs/devel: Do not unparent in instance_finalize()" and "[PATCH 02/22] vfio/pci: Do not unparent in instance_finalize()". - Dropped patches to move address_space_init() calls; I intend to QOM-ify to fix memory leaks automatically as discussed in the following thread: https://lore.kernel.org/qemu-devel/[email protected]/ But the QOM-ification will be big so I'll send it as a separate series. - Rebased on top of "[PATCH v2 00/14] hw/pci-host/raven clean ups". https://lore.kernel.org/qemu-devel/[email protected]/ - Link to v1: https://lore.kernel.org/qemu-devel/[email protected] --- Akihiko Odaki (7): docs/devel: Do not unparent in instance_finalize() vfio/pci: Do not unparent in instance_finalize() hw/core/register: Do not unparent in instance_finalize() hv-balloon: hw/core/register: Do not unparent in instance_finalize() hw/sd/sdhci: Do not unparent in instance_finalize() vfio: Do not unparent in instance_finalize() hw/xen: Do not unparent in instance_finalize() docs/devel/memory.rst | 17 ++++++----------- hw/core/register.c | 1 - hw/hyperv/hv-balloon.c | 12 +----------- hw/sd/sdhci.c | 4 ---- hw/vfio/pci-quirks.c | 9 +-------- hw/vfio/pci.c | 4 ---- hw/vfio/region.c | 3 --- hw/xen/xen_pt_msi.c | 11 +---------- 8 files changed, 9 insertions(+), 52 deletions(-) --- base-commit: ab8008b231e758e03c87c1c483c03afdd9c02e19 change-id: 20250906-use-37ecc903a9e0 Best regards, -- Akihiko Odaki <[email protected]>
