[PATCH v2] drm/amdgpu: fix overflowed array index read warning

Huang, Tim Tim.Huang at amd.com
Fri Apr 26 00:04:49 UTC 2024


[AMD Official Use Only - General]

-----Original Message-----
From: Koenig, Christian <Christian.Koenig at amd.com>
Sent: Thursday, April 25, 2024 9:31 PM
To: Alex Deucher <alexdeucher at gmail.com>; Huang, Tim <Tim.Huang at amd.com>
Cc: amd-gfx at lists.freedesktop.org; Deucher, Alexander <Alexander.Deucher at amd.com>
Subject: Re: [PATCH v2] drm/amdgpu: fix overflowed array index read warning

Am 25.04.24 um 15:28 schrieb Alex Deucher:
> On Thu, Apr 25, 2024 at 3:22 AM Tim Huang <tim.huang at amd.com> wrote:
>> From: Tim Huang <Tim.Huang at amd.com>
>>
>> Clear warning that cast operation might have overflowed.
>>
>> v2: keep reverse xmas tree order to declare "int r;" (Christian)
>>
>> Signed-off-by: Tim Huang <Tim.Huang at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>> index 06f0a6534a94..8cf60acb2970 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>> @@ -473,8 +473,8 @@ static ssize_t amdgpu_debugfs_ring_read(struct file *f, char __user *buf,
>>                                          size_t size, loff_t *pos)
>>   {
>>          struct amdgpu_ring *ring = file_inode(f)->i_private;
>> -       int r, i;
>>          uint32_t value, result, early[3];
>> +       int r;
>>
>>          if (*pos & 3 || size & 3)
>>                  return -EINVAL;
>> @@ -485,7 +485,7 @@ static ssize_t amdgpu_debugfs_ring_read(struct file *f, char __user *buf,
>>                  early[0] = amdgpu_ring_get_rptr(ring) & ring->buf_mask;
>>                  early[1] = amdgpu_ring_get_wptr(ring) & ring->buf_mask;
>>                  early[2] = ring->wptr & ring->buf_mask;
>> -               for (i = *pos / 4; i < 3 && size; i++) {
>> +               for (loff_t i = *pos / 4; i < 3 && size; i++) {
> Some older compilers complain about declarations mixed with code like
> this.  Not sure how big a deal that would be.

>Good point, we would like to be able to backport this.

>Somebody from Alivins team needs to comment, but IIRC we agreed that this would be legal and we take care of it by using appropriate compiler flags on older kernels.

>Christian.

Thanks for pointing out. Will avoid doing this.

>
> Alex
>
>>                          r = put_user(early[i], (uint32_t *)buf);
>>                          if (r)
>>                                  return r;
>> --
>> 2.39.2
>>



More information about the amd-gfx mailing list