On 5/25/26 06:51, Sunil Khatri wrote:
> In case when queue_create fails and mqd has already been
> allocated and hence wptr_obj is not cleaned up.
> 
> So moving that cleanup part to mqd_destroy so it takes
> care of all the cases of clean up and during tear down of
> the queue.
> 
> Signed-off-by: Sunil Khatri <[email protected]>

Reviewed-by: Christian König <[email protected]>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c  | 4 ----
>  drivers/gpu/drm/amd/amdgpu/mes_userqueue.c | 5 +++++
>  2 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> index 5e361b035e8f..f0c7b686f68d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> @@ -534,10 +534,6 @@ amdgpu_userq_destroy(struct amdgpu_userq_mgr *uq_mgr, 
> struct amdgpu_usermode_que
>       amdgpu_bo_unreserve(queue->db_obj.obj);
>       amdgpu_bo_unref(&queue->db_obj.obj);
>  
> -     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);
>       kfree(queue);
>  
>       pm_runtime_put_autosuspend(adev_to_drm(adev)->dev);
> diff --git a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c 
> b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
> index e9189f07c6dc..836a156cafd8 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mes_userqueue.c
> @@ -467,6 +467,11 @@ static void mes_userq_mqd_destroy(struct 
> amdgpu_usermode_queue *queue)
>       kfree(queue->userq_prop);
>       amdgpu_bo_free_kernel(&queue->mqd.obj, &queue->mqd.gpu_addr,
>                             &queue->mqd.cpu_ptr);
> +
> +     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);
>  }
>  
>  static int mes_userq_preempt(struct amdgpu_usermode_queue *queue)

Reply via email to