Commit 46fe219d authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-fixes-5.4-2019-10-09' of git://people.freedesktop.org/~agd5f/linux into drm-fixes



drm-fixes-5.4-2019-10-09:

amdgpu:
- fix memory leak in bo_list ioctl error path

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Alex Deucher <alexdeucher@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191010031023.23359-1-alexander.deucher@amd.com
parents 437c5a15 083164db
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -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);
	return r;
}