On 5/19/26 13:17, Sunil Khatri wrote:
> Unpin and unref the door bell obj if queue creation fails before
> initialization is complete.
> 
> Signed-off-by: Sunil Khatri <[email protected]>

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

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> index 154742bdd5a6..eedea84c5e0f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> @@ -787,7 +787,7 @@ amdgpu_userq_create(struct drm_file *filp, union 
> drm_amdgpu_userq *args)
>       r = uq_funcs->mqd_create(queue, &args->in);
>       if (r) {
>               drm_file_err(uq_mgr->file, "Failed to create Queue\n");
> -             goto clean_mapping;
> +             goto clean_doorbell_bo;
>       }
>  
>       /* Update VM owner at userq submit-time for page-fault attribution. */
> @@ -808,7 +808,7 @@ amdgpu_userq_create(struct drm_file *filp, union 
> drm_amdgpu_userq *args)
>               if (r) {
>                       drm_file_err(uq_mgr->file, "Failed to map Queue\n");
>                       mutex_unlock(&uq_mgr->userq_mutex);
> -                     goto clean_doorbell;
> +                     goto erase_doorbell;
>               }
>       }
>  
> @@ -831,10 +831,15 @@ amdgpu_userq_create(struct drm_file *filp, union 
> drm_amdgpu_userq *args)
>       args->out.queue_id = qid;
>       return 0;
>  
> -clean_doorbell:
> +erase_doorbell:
>       xa_erase_irq(&adev->userq_doorbell_xa, index);
>  clean_mqd:
>       uq_funcs->mqd_destroy(queue);
> +clean_doorbell_bo:
> +     amdgpu_bo_reserve(queue->db_obj.obj, true);
> +     amdgpu_bo_unpin(queue->db_obj.obj);
> +     amdgpu_bo_unreserve(queue->db_obj.obj);
> +     amdgpu_bo_unref(&queue->db_obj.obj);
>  clean_mapping:
>       amdgpu_bo_reserve(fpriv->vm.root.bo, true);
>       amdgpu_userq_buffer_vas_list_cleanup(adev, queue);

Reply via email to