On 12/18/25 16:04, Tvrtko Ursulin wrote:
> Commit
> cb17fff3a254 ("drm/amdgpu/mes: remove unused functions")
> removed most of the code using these IDRs but forgot to remove the struct
> members and init/destroy paths.
> 
> There is also interrupt handling code in SDMA 5.0 and 5.2 which appears to
> be using it, but is is unreachable since nothing ever allocates the
> relevant IDR. We replace those with one time warnings just to avoid any
> functional difference, but it is also possible they should be removed.
> 
> Signed-off-by: Tvrtko Ursulin <[email protected]>
> References: cb17fff3a254 ("drm/amdgpu/mes: remove unused functions")
> Cc: Alex Deucher <[email protected]>

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

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c |  9 ---------
>  drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h |  3 ---
>  drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c  | 18 +++---------------
>  drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c  | 18 +++---------------
>  4 files changed, 6 insertions(+), 42 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> index 9c182ce501af..505619d504ea 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> @@ -94,9 +94,6 @@ int amdgpu_mes_init(struct amdgpu_device *adev)
>  
>       adev->mes.adev = adev;
>  
> -     idr_init(&adev->mes.pasid_idr);
> -     idr_init(&adev->mes.gang_id_idr);
> -     idr_init(&adev->mes.queue_id_idr);
>       ida_init(&adev->mes.doorbell_ida);
>       spin_lock_init(&adev->mes.queue_id_lock);
>       mutex_init(&adev->mes.mutex_hidden);
> @@ -218,9 +215,6 @@ int amdgpu_mes_init(struct amdgpu_device *adev)
>                                     adev->mes.query_status_fence_offs[i]);
>       }
>  
> -     idr_destroy(&adev->mes.pasid_idr);
> -     idr_destroy(&adev->mes.gang_id_idr);
> -     idr_destroy(&adev->mes.queue_id_idr);
>       ida_destroy(&adev->mes.doorbell_ida);
>       mutex_destroy(&adev->mes.mutex_hidden);
>       return r;
> @@ -248,9 +242,6 @@ void amdgpu_mes_fini(struct amdgpu_device *adev)
>  
>       amdgpu_mes_doorbell_free(adev);
>  
> -     idr_destroy(&adev->mes.pasid_idr);
> -     idr_destroy(&adev->mes.gang_id_idr);
> -     idr_destroy(&adev->mes.queue_id_idr);
>       ida_destroy(&adev->mes.doorbell_ida);
>       mutex_destroy(&adev->mes.mutex_hidden);
>  }
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
> index e989225b354b..f45129277479 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
> @@ -68,9 +68,6 @@ struct amdgpu_mes {
>  
>       struct mutex                    mutex_hidden;
>  
> -     struct idr                      pasid_idr;
> -     struct idr                      gang_id_idr;
> -     struct idr                      queue_id_idr;
>       struct ida                      doorbell_ida;
>  
>       spinlock_t                      queue_id_lock;
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c 
> b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
> index 8ddc4df06a1f..ab9e6199b01d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
> @@ -1704,24 +1704,12 @@ static int sdma_v5_0_process_trap_irq(struct 
> amdgpu_device *adev,
>                                     struct amdgpu_irq_src *source,
>                                     struct amdgpu_iv_entry *entry)
>  {
> -     uint32_t mes_queue_id = entry->src_data[0];
> -
>       DRM_DEBUG("IH: SDMA trap\n");
>  
> -     if (adev->enable_mes && (mes_queue_id & AMDGPU_FENCE_MES_QUEUE_FLAG)) {
> -             struct amdgpu_mes_queue *queue;
> -
> -             mes_queue_id &= AMDGPU_FENCE_MES_QUEUE_ID_MASK;
> -
> -             spin_lock(&adev->mes.queue_id_lock);
> -             queue = idr_find(&adev->mes.queue_id_idr, mes_queue_id);
> -             if (queue) {
> -                     DRM_DEBUG("process smda queue id = %d\n", mes_queue_id);
> -                     amdgpu_fence_process(queue->ring);
> -             }
> -             spin_unlock(&adev->mes.queue_id_lock);
> +     if (drm_WARN_ON_ONCE(&adev->ddev,
> +                          adev->enable_mes &&
> +                          (entry->src_data[0] & 
> AMDGPU_FENCE_MES_QUEUE_FLAG)))
>               return 0;
> -     }
>  
>       switch (entry->client_id) {
>       case SOC15_IH_CLIENTID_SDMA0:
> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c 
> b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
> index 51101b0aa2fa..4f78dd93939c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
> @@ -1617,24 +1617,12 @@ static int sdma_v5_2_process_trap_irq(struct 
> amdgpu_device *adev,
>                                     struct amdgpu_irq_src *source,
>                                     struct amdgpu_iv_entry *entry)
>  {
> -     uint32_t mes_queue_id = entry->src_data[0];
> -
>       DRM_DEBUG("IH: SDMA trap\n");
>  
> -     if (adev->enable_mes && (mes_queue_id & AMDGPU_FENCE_MES_QUEUE_FLAG)) {
> -             struct amdgpu_mes_queue *queue;
> -
> -             mes_queue_id &= AMDGPU_FENCE_MES_QUEUE_ID_MASK;
> -
> -             spin_lock(&adev->mes.queue_id_lock);
> -             queue = idr_find(&adev->mes.queue_id_idr, mes_queue_id);
> -             if (queue) {
> -                     DRM_DEBUG("process smda queue id = %d\n", mes_queue_id);
> -                     amdgpu_fence_process(queue->ring);
> -             }
> -             spin_unlock(&adev->mes.queue_id_lock);
> +     if (drm_WARN_ON_ONCE(&adev->ddev,
> +                          adev->enable_mes &&
> +                          (entry->src_data[0] & 
> AMDGPU_FENCE_MES_QUEUE_FLAG)))
>               return 0;
> -     }
>  
>       switch (entry->client_id) {
>       case SOC15_IH_CLIENTID_SDMA0:

Reply via email to