AMD General

Reviewed-by: Kent Russell <[email protected]>



> -----Original Message-----
> From: amd-gfx <[email protected]> On Behalf Of
> Marioukhine, Vladimir
> Sent: June 17, 2026 5:02 PM
> To: [email protected]
> Cc: Deucher, Alexander <[email protected]>
> Subject: [PATCH v2] drm/amdkfd: fix QID bit leak in pqm_create_queue()
>
> [Some people who received this message don't often get email from
> [email protected]. Learn why this is important at
> https://aka.ms/LearnAboutSenderIdentification ]
>
> When MES is enabled and amdgpu_amdkfd_alloc_kernel_mem() fails during
> the first queue creation for a process, pqm_create_queue() returns
> early via 'return retval' without going through the err_create_queue
> cleanup label.
>
> This means clear_bit(*qid, pqm->queue_slot_bitmap) is never called,
> leaving the reserved QID bit permanently set in queue_slot_bitmap.
> Over time this leaks QID slots, potentially exhausting all available
> queue slots.
>
> Fix this by replacing 'return retval' with 'goto err_create_queue'
> so that clear_bit() is always called on the error path.
>
> Fixes: AILIKFD-813
> Reported-by: Deucher, Alexander <[email protected]>
> Signed-off-by: Vladimir Marioukhine <[email protected]>
>
> Changes in v2:
> - Fixed author name format to First Last order (suggested by A. Deucher)
> - Removed incorrect attachments from mailing list submission
>
> ---
>  drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> index 1234567..abcdefg 100644
> --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
> @@ -378,7 +378,7 @@
>                                                      false);
>                 if (retval) {
>                         dev_err(dev->adev->dev, "failed to allocate process 
> context bo\n");
> -                       return retval;
> +                       goto err_create_queue;
>                 }
>                 memset(pdd->proc_ctx_cpu_ptr, 0, AMDGPU_MES_PROC_CTX_SIZE);
>         }
> --
> 2.34.1

Reply via email to