after the buffer object is successfully mapped, call amdgpu_bo_kunmap before the function returns.
Signed-off-by: zhanglianjie zhanglianjie@uniontech.com
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
after the buffer object is successfully mapped, call radeon_bo_kunmap before the function returns.
Signed-off-by: zhanglianjie zhanglianjie@uniontech.com
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
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 zhanglianjie@uniontech.com
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) {
DRM_ERROR("Invalid UVD handle!\n"); return -EINVAL; }radeon_bo_kunmap(bo);
@@ -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
Hi, Thanks for your review. I have resubmitted, see https://lkml.org/lkml/2022/2/7/2014
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 zhanglianjie@uniontech.com
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
dri-devel@lists.freedesktop.org