aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhenzhong Duan <zhenzhong.duan@intel.com>2023-11-21 16:44:02 +0800
committerCédric Le Goater <clg@redhat.com>2023-12-19 19:03:38 +0100
commit1eae5b7bd3ddd03b5591e9122b011c6520064a5a (patch)
tree992edd3a2ea9eba4bd0efaf5c77a198a8d840787
parentd6b5c4c1b516a8176b74ec35a0af8cf89b04b6c1 (diff)
downloadqemu-1eae5b7bd3ddd03b5591e9122b011c6520064a5a.zip
qemu-1eae5b7bd3ddd03b5591e9122b011c6520064a5a.tar.gz
qemu-1eae5b7bd3ddd03b5591e9122b011c6520064a5a.tar.bz2
vfio/common: return early if space isn't empty
This is a trivial optimization. If there is active container in space, vfio_reset_handler will never be unregistered. So revert the check of space->containers and return early. Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Tested-by: Eric Auger <eric.auger@redhat.com> Tested-by: Nicolin Chen <nicolinc@nvidia.com> Signed-off-by: Cédric Le Goater <clg@redhat.com>
-rw-r--r--hw/vfio/common.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index 572ae7c..934f4f5 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -1462,10 +1462,13 @@ VFIOAddressSpace *vfio_get_address_space(AddressSpace *as)
void vfio_put_address_space(VFIOAddressSpace *space)
{
- if (QLIST_EMPTY(&space->containers)) {
- QLIST_REMOVE(space, list);
- g_free(space);
+ if (!QLIST_EMPTY(&space->containers)) {
+ return;
}
+
+ QLIST_REMOVE(space, list);
+ g_free(space);
+
if (QLIST_EMPTY(&vfio_address_spaces)) {
qemu_unregister_reset(vfio_reset_handler, NULL);
}