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@xxxxxxx> Reviewed-by: Christian König <christian.koenig@xxxxxxx> > --- > 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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx