diff options
author | John Levon <john.levon@nutanix.com> | 2025-05-20 16:03:51 +0100 |
---|---|---|
committer | Cédric Le Goater <clg@redhat.com> | 2025-06-05 10:40:38 +0200 |
commit | 33528f255a710d394ec692de54baebff1f494b5b (patch) | |
tree | afba52d469dac63e3e01b96913fadb2d24258b46 | |
parent | 493a06a2eda3346923f2aab760d8280c78039dc7 (diff) | |
download | qemu-33528f255a710d394ec692de54baebff1f494b5b.zip qemu-33528f255a710d394ec692de54baebff1f494b5b.tar.gz qemu-33528f255a710d394ec692de54baebff1f494b5b.tar.bz2 |
vfio: move more cleanup into vfio_pci_put_device()
All of the cleanup can be done in the same place, and vfio-user will
want to do the same.
Signed-off-by: John Levon <john.levon@nutanix.com>
Reviewed-by: Cédric Le Goater <clg@redhat.com>
Link: https://lore.kernel.org/qemu-devel/20250520150419.2172078-3-john.levon@nutanix.com
Signed-off-by: Cédric Le Goater <clg@redhat.com>
-rw-r--r-- | hw/vfio/pci.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index a1bfdfe..d96b55f 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -2854,6 +2854,18 @@ static bool vfio_populate_device(VFIOPCIDevice *vdev, Error **errp) static void vfio_pci_put_device(VFIOPCIDevice *vdev) { + vfio_display_finalize(vdev); + vfio_bars_finalize(vdev); + g_free(vdev->emulated_config_bits); + g_free(vdev->rom); + /* + * XXX Leaking igd_opregion is not an oversight, we can't remove the + * fw_cfg entry therefore leaking this allocation seems like the safest + * option. + * + * g_free(vdev->igd_opregion); + */ + vfio_device_detach(&vdev->vbasedev); g_free(vdev->vbasedev.name); @@ -3302,17 +3314,6 @@ static void vfio_instance_finalize(Object *obj) { VFIOPCIDevice *vdev = VFIO_PCI_BASE(obj); - vfio_display_finalize(vdev); - vfio_bars_finalize(vdev); - g_free(vdev->emulated_config_bits); - g_free(vdev->rom); - /* - * XXX Leaking igd_opregion is not an oversight, we can't remove the - * fw_cfg entry therefore leaking this allocation seems like the safest - * option. - * - * g_free(vdev->igd_opregion); - */ vfio_pci_put_device(vdev); } |