2022-01-31 23:12:47

by Lianjie Zhang

[permalink] [raw]
Subject: [PATCH 1/2] drm/amd/amdgpu/amdgpu_uvd: Fix forgotten unmap buffer object

after the buffer object is successfully mapped, call amdgpu_bo_kunmap before the function returns.

Signed-off-by: zhanglianjie <[email protected]>

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
index 6f8de11a17f1..9cc23b220537 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
@@ -834,6 +834,7 @@ static int amdgpu_uvd_cs_msg(struct amdgpu_uvd_cs_ctx *ctx,
handle = msg[2];

if (handle == 0) {
+ amdgpu_bo_kunmap(bo);
DRM_ERROR("Invalid UVD handle!\n");
return -EINVAL;
}
@@ -892,6 +893,7 @@ static int amdgpu_uvd_cs_msg(struct amdgpu_uvd_cs_ctx *ctx,
DRM_ERROR("Illegal UVD message type (%d)!\n", msg_type);
}

+ amdgpu_bo_kunmap(bo);
return -EINVAL;
}

--
2.20.1





2022-01-31 23:14:03

by Lianjie Zhang

[permalink] [raw]
Subject: [PATCH 2/2] drm/radeon/uvd: Fix forgotten unmap buffer objects

after the buffer object is successfully mapped, call radeon_bo_kunmap before the function returns.

Signed-off-by: zhanglianjie <[email protected]>

diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
index 377f9cdb5b53..c5482f7793db 100644
--- a/drivers/gpu/drm/radeon/radeon_uvd.c
+++ b/drivers/gpu/drm/radeon/radeon_uvd.c
@@ -497,6 +497,7 @@ static int radeon_uvd_cs_msg(struct radeon_cs_parser *p, struct radeon_bo *bo,
handle = msg[2];

if (handle == 0) {
+ radeon_bo_kunmap(bo);
DRM_ERROR("Invalid UVD handle!\n");
return -EINVAL;
}
@@ -559,11 +560,10 @@ static int radeon_uvd_cs_msg(struct radeon_cs_parser *p, struct radeon_bo *bo,
return 0;

default:
-
DRM_ERROR("Illegal UVD message type (%d)!\n", msg_type);
- return -EINVAL;
}

+ radeon_bo_kunmap(bo);
BUG();
return -EINVAL;
}
--
2.20.1



2022-02-01 10:13:23

by Christian König

[permalink] [raw]
Subject: Re: [PATCH 2/2] drm/radeon/uvd: Fix forgotten unmap buffer objects



Am 29.01.22 um 08:35 schrieb zhanglianjie:
> after the buffer object is successfully mapped, call radeon_bo_kunmap before the function returns.
>
> Signed-off-by: zhanglianjie <[email protected]>
>
> diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
> index 377f9cdb5b53..c5482f7793db 100644
> --- a/drivers/gpu/drm/radeon/radeon_uvd.c
> +++ b/drivers/gpu/drm/radeon/radeon_uvd.c
> @@ -497,6 +497,7 @@ static int radeon_uvd_cs_msg(struct radeon_cs_parser *p, struct radeon_bo *bo,
> handle = msg[2];
>
> if (handle == 0) {
> + radeon_bo_kunmap(bo);
> DRM_ERROR("Invalid UVD handle!\n");
> return -EINVAL;
> }
> @@ -559,11 +560,10 @@ static int radeon_uvd_cs_msg(struct radeon_cs_parser *p, struct radeon_bo *bo,
> return 0;
>
> default:
> -
> DRM_ERROR("Illegal UVD message type (%d)!\n", msg_type);
> - return -EINVAL;
> }
>
> + radeon_bo_kunmap(bo);
> BUG();

That looks like it will trigger this BUG() now. Please also remove that
line.

Apart from that the patches look good to me.

Regards,
Christian.

> return -EINVAL;
> }
> --
> 2.20.1
>
>
>