On 5/15/24 10:20, Zhenzhong Duan wrote:
> Changed functions include vfio_set_irq_signaling()
this change looks fine
> and vfio_region_setup().
I would prefer all users of vfio_get_region_info() to be changed.
Thanks,
C.
>
> Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
> ---
> hw/vfio/helpers.c | 7 ++-----
> 1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/hw/vfio/helpers.c b/hw/vfio/helpers.c
> index 47b4096c05..0bb7b40a6a 100644
> --- a/hw/vfio/helpers.c
> +++ b/hw/vfio/helpers.c
> @@ -111,7 +111,7 @@ int vfio_set_irq_signaling(VFIODevice *vbasedev, int index, int subindex,
> int action, int fd, Error **errp)
> {
> ERRP_GUARD();
> - struct vfio_irq_set *irq_set;
> + g_autofree struct vfio_irq_set *irq_set = NULL;
> int argsz, ret = 0;
> const char *name;
> int32_t *pfd;
> @@ -130,7 +130,6 @@ int vfio_set_irq_signaling(VFIODevice *vbasedev, int index, int subindex,
> if (ioctl(vbasedev->fd, VFIO_DEVICE_SET_IRQS, irq_set)) {
> ret = -errno;
> }
> - g_free(irq_set);
>
> if (!ret) {
> return 0;
> @@ -348,7 +347,7 @@ static int vfio_setup_region_sparse_mmaps(VFIORegion *region,
> int vfio_region_setup(Object *obj, VFIODevice *vbasedev, VFIORegion *region,
> int index, const char *name)
> {
> - struct vfio_region_info *info;
> + g_autofree struct vfio_region_info *info = NULL;
> int ret;
>
> ret = vfio_get_region_info(vbasedev, index, &info);
> @@ -381,8 +380,6 @@ int vfio_region_setup(Object *obj, VFIODevice *vbasedev, VFIORegion *region,
> }
> }
>
> - g_free(info);
> -
> trace_vfio_region_setup(vbasedev->name, index, name,
> region->flags, region->fd_offset, region->size);
> return 0;