diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 14 | 
1 files 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;  }  | 
