Re: [PATCH-next v2] Fix unintentional integer overflow

From: Lazar, Lijo
Date: Fri Oct 04 2024 - 07:20:04 EST




On 10/3/2024 3:56 PM, Advait Dhamorikar wrote:
> Fix shift-count-overflow in JPEG instance
> multiplication. The expression's value may not be
> what the programmer intended, because the expression
> is evaluated using a narrower integer type.
>
> Fixes: f0b19b84d391 ("drm/amdgpu: add amdgpu_jpeg_sched_mask debugfs")
> Signed-off-by: Advait Dhamorikar <advaitdhamorikar@xxxxxxxxx>
> ---
> V1 -> V2: addressed review comments
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> index 95e2796919fc..b6f0435f56ba 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> @@ -357,7 +357,7 @@ static int amdgpu_debugfs_jpeg_sched_mask_set(void *data, u64 val)
> if (!adev)
> return -ENODEV;
>
> - mask = (1 << (adev->jpeg.num_jpeg_inst * adev->jpeg.num_jpeg_rings)) - 1;
> + mask = ((uint64_t)1 << (adev->jpeg.num_jpeg_inst * adev->jpeg.num_jpeg_rings)) - 1;

Using 1ULL here is more legible.

Thanks,
Lijo

> if ((val & mask) == 0)
> return -EINVAL;
>