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);
> }