[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 2/7] vfio/pci: Do not unparent in instance_finalize()
- To: qemu-devel@xxxxxxxxxx
- From: Akihiko Odaki <odaki@xxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 17 Sep 2025 19:13:27 +0900
- Cc: Alex Williamson <alex.williamson@xxxxxxxxxx>, Cédric Le Goater <clg@xxxxxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Daniel P. Berrangé <berrange@xxxxxxxxxx>, Eduardo Habkost <eduardo@xxxxxxxxxxx>, Peter Xu <peterx@xxxxxxxxxx>, David Hildenbrand <david@xxxxxxxxxx>, Philippe Mathieu-Daudé <philmd@xxxxxxxxxx>, Richard Henderson <richard.henderson@xxxxxxxxxx>, Helge Deller <deller@xxxxxx>, Marc-André Lureau <marcandre.lureau@xxxxxxxxxx>, "Michael S. Tsirkin" <mst@xxxxxxxxxx>, Gerd Hoffmann <kraxel@xxxxxxxxxx>, John Snow <jsnow@xxxxxxxxxx>, qemu-block@xxxxxxxxxx, Keith Busch <kbusch@xxxxxxxxxx>, Klaus Jensen <its@xxxxxxxxxxxxx>, Jesper Devantier <foss@xxxxxxxxxxx>, Marcel Apfelbaum <marcel.apfelbaum@xxxxxxxxx>, Nicholas Piggin <npiggin@xxxxxxxxx>, qemu-ppc@xxxxxxxxxx, John Levon <john.levon@xxxxxxxxxxx>, Thanos Makatos <thanos.makatos@xxxxxxxxxxx>, Yanan Wang <wangyanan55@xxxxxxxxxx>, BALATON Zoltan <balaton@xxxxxxxxxx>, Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>, Daniel Henrique Barboza <danielhb413@xxxxxxxxx>, David Gibson <david@xxxxxxxxxxxxxxxxxxxxx>, Harsh Prateek Bora <harshpb@xxxxxxxxxxxxx>, Alexey Kardashevskiy <aik@xxxxxxxxx>, Alex Bennée <alex.bennee@xxxxxxxxxx>, Fabiano Rosas <farosas@xxxxxxx>, Thomas Huth <thuth@xxxxxxxxxx>, Laurent Vivier <lvivier@xxxxxxxxxx>, Peter Maydell <peter.maydell@xxxxxxxxxx>, Aurelien Jarno <aurelien@xxxxxxxxxxx>, Aleksandar Rikalo <arikalo@xxxxxxxxx>, Max Filippov <jcmvbkbc@xxxxxxxxx>, Hervé Poussineau <hpoussin@xxxxxxxxxxx>, Mark Cave-Ayland <mark.cave-ayland@xxxxxxxxxxxx>, Artyom Tarasenko <atar4qemu@xxxxxxxxx>, Alistair Francis <alistair@xxxxxxxxxxxxx>, "Maciej S. Szmigiero" <maciej.szmigiero@xxxxxxxxxx>, Bin Meng <bmeng.cn@xxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Anthony PERARD <anthony@xxxxxxxxxxxxxx>, Paul Durrant <paul@xxxxxxx>, "Edgar E. Iglesias" <edgar.iglesias@xxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, Akihiko Odaki <odaki@xxxxxxxxxxxxxxxxxxxxxx>
- Delivery-date: Wed, 17 Sep 2025 10:43:58 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
Children are automatically unparented so manually unparenting is
unnecessary.
Worse, automatic unparenting happens before the insntance_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@xxxxxxxxxxxxxxxxxxxxxx>
---
hw/vfio/pci.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
index 07257d0fa049..2e909c190f86 100644
--- a/hw/vfio/pci.c
+++ b/hw/vfio/pci.c
@@ -2000,7 +2000,6 @@ static void vfio_bars_finalize(VFIOPCIDevice *vdev)
vfio_region_finalize(&bar->region);
if (bar->mr) {
assert(bar->size);
- object_unparent(OBJECT(bar->mr));
g_free(bar->mr);
bar->mr = NULL;
}
@@ -2008,9 +2007,6 @@ static void vfio_bars_finalize(VFIOPCIDevice *vdev)
if (vdev->vga) {
vfio_vga_quirk_finalize(vdev);
- for (i = 0; i < ARRAY_SIZE(vdev->vga->region); i++) {
- object_unparent(OBJECT(&vdev->vga->region[i].mem));
- }
g_free(vdev->vga);
}
}
--
2.51.0
|