[PATCH] drm/amdgpu: fix memory leak
Koenig, Christian
Christian.Koenig at amd.com
Fri Oct 4 15:03:50 UTC 2019
Am 04.10.19 um 15:51 schrieb Nirmoy Das:
> cleanup error handling code and make sure temporary info array
> with the handles are freed by amdgpu_bo_list_put() on
> idr_replace()'s failure.
>
> Signed-off-by: Nirmoy Das <nirmoy.das at amd.com>
Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
> index 7bcf86c61999..61e38e43ad1d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
> @@ -270,7 +270,7 @@ int amdgpu_bo_list_ioctl(struct drm_device *dev, void *data,
>
> r = amdgpu_bo_create_list_entry_array(&args->in, &info);
> if (r)
> - goto error_free;
> + return r;
>
> switch (args->in.operation) {
> case AMDGPU_BO_LIST_OP_CREATE:
> @@ -283,8 +283,7 @@ int amdgpu_bo_list_ioctl(struct drm_device *dev, void *data,
> r = idr_alloc(&fpriv->bo_list_handles, list, 1, 0, GFP_KERNEL);
> mutex_unlock(&fpriv->bo_list_lock);
> if (r < 0) {
> - amdgpu_bo_list_put(list);
> - return r;
> + goto error_put_list;
> }
>
> handle = r;
> @@ -306,9 +305,8 @@ int amdgpu_bo_list_ioctl(struct drm_device *dev, void *data,
> mutex_unlock(&fpriv->bo_list_lock);
>
> if (IS_ERR(old)) {
> - amdgpu_bo_list_put(list);
> r = PTR_ERR(old);
> - goto error_free;
> + goto error_put_list;
> }
>
> amdgpu_bo_list_put(old);
> @@ -325,8 +323,10 @@ int amdgpu_bo_list_ioctl(struct drm_device *dev, void *data,
>
> return 0;
>
> +error_put_list:
> + amdgpu_bo_list_put(list);
> +
> error_free:
> - if (info)
> - kvfree(info);
> + kvfree(info);
> return r;
> }
More information about the amd-gfx
mailing list