Re: [PATCH] drm:amd:amdgpu: Fix missing bo unlock in failure path

From: Christian König
Date: Mon Apr 24 2023 - 03:07:17 EST


Am 24.04.23 um 07:59 schrieb Sukrut Bellary:
smatch warning - inconsistent handling of buffer object reserve
and unreserve.

Signed-off-by: Sukrut Bellary <sukrut.bellary@xxxxxxxxx>

For now that patch is Reviewed-by: Christian König <christian.koenig@xxxxxxx>.

But for the record mapping/unmapping the MQD like this is a very bad idea in the first place.

We could need to shuffle memory around for that during resume and that is not something we really want to do.

Christian.

---
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
index 278416acf060..5de44d7e92de 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
@@ -4686,8 +4686,10 @@ static int gfx_v8_0_kiq_resume(struct amdgpu_device *adev)
return r;
r = amdgpu_bo_kmap(ring->mqd_obj, &ring->mqd_ptr);
- if (unlikely(r != 0))
+ if (unlikely(r != 0)) {
+ amdgpu_bo_unreserve(ring->mqd_obj);
return r;
+ }
gfx_v8_0_kiq_init_queue(ring);
amdgpu_bo_kunmap(ring->mqd_obj);