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;
