On 1/28/26 12:00, Jesse.Zhang wrote:
> Add validation to ensure user queue sizes meet hardware requirements:
> - Size must be a power of two for efficient ring buffer wrapping
> - Size must be at least AMDGPU_GPU_PAGE_SIZE to prevent undersized allocations
> 
> This prevents invalid configurations that could lead to GPU faults or
> unexpected behavior.
> 
> Signed-off-by: Jesse Zhang <[email protected]>

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

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> index 3003aba22e1d..998e1fcc0034 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> @@ -864,6 +864,17 @@ static int amdgpu_userq_input_args_validate(struct 
> drm_device *dev,
>                       drm_file_err(filp, "invalidate userq queue va or 
> size\n");
>                       return -EINVAL;
>               }
> +
> +             if (!is_power_of_2(args->in.queue_size)) {
> +                     drm_file_err(filp, "Queue size must be a power of 2\n");
> +                     return -EINVAL;
> +             }
> +
> +             if (args->in.queue_size < AMDGPU_GPU_PAGE_SIZE) {
> +                     drm_file_err(filp, "Queue size smaller than 
> AMDGPU_GPU_PAGE_SIZE\n");
> +                     return -EINVAL;
> +             }
> +
>               if (!args->in.wptr_va || !args->in.rptr_va) {
>                       drm_file_err(filp, "invalidate userq queue rptr or 
> wptr\n");
>                       return -EINVAL;

Reply via email to