On 19-05-2026 06:13 pm, Christian König wrote:
On 5/19/26 13:17, Sunil Khatri wrote:
During queue creation failure, when we clean up mqd via
mqd_destroy we arent doing the wptr_obj cleanup and hence
adding that clean up.
Signed-off-by: Sunil Khatri <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
index 0737636fac43..47a38fefad89 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
@@ -835,6 +835,10 @@ amdgpu_userq_create(struct drm_file *filp, union
drm_amdgpu_userq *args)
erase_doorbell:
xa_erase_irq(&adev->userq_doorbell_xa, index);
clean_mqd:
+ amdgpu_bo_reserve(queue->wptr_obj.obj, true);
+ amdgpu_bo_unpin(queue->wptr_obj.obj);
+ amdgpu_bo_unreserve(queue->wptr_obj.obj);
+ amdgpu_bo_unref(&queue->wptr_obj.obj);
That should probably be a function in mes_userqueue.c instead of here.
Yeah even i thought so about it, sure will move in MES layer in the new
patch set
Regards
Sunil khatri
Regards,
Christian.
uq_funcs->mqd_destroy(queue);
clean_doorbell_bo:
amdgpu_bo_reserve(queue->db_obj.obj, true);