Message ID | 20231114100955.1961974-4-zhenzhong.duan@intel.com |
---|---|
State | New |
Headers | show |
Series | vfio: Adopt iommufd | expand |
On 11/14/23 11:09, Zhenzhong Duan wrote: > 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> Thanks, C. > --- > hw/vfio/common.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/hw/vfio/common.c b/hw/vfio/common.c > index 572ae7c934..934f4f5446 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); > }
On 11/14/23 11:09, Zhenzhong Duan wrote: > 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: Eric Auger <eric.auger@redhat.com> Thanks Eric > --- > hw/vfio/common.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/hw/vfio/common.c b/hw/vfio/common.c > index 572ae7c934..934f4f5446 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); > }
diff --git a/hw/vfio/common.c b/hw/vfio/common.c index 572ae7c934..934f4f5446 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); }
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> --- hw/vfio/common.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)