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....@amd.com>

Reviewed-by: Christian König <christian.koe...@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;
>   }

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to