diff mbox series

[PATCH-next] Fix unintentional integer overflow

Message ID 20241004081618.27599-1-advaitdhamorikar@gmail.com (mailing list archive)
State New, archived
Headers show
Series [PATCH-next] Fix unintentional integer overflow | expand

Commit Message

Advait Dhamorikar Oct. 4, 2024, 8:16 a.m. UTC
Fix shift-count-overflow when creating mask.
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@gmail.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sundararaju, Sathishkumar Oct. 4, 2024, 9:15 a.m. UTC | #1
All occurrences of this error fix should have been together in a single 
patch both in _get and _set callbacks corresponding to f0b19b84d391, 
please avoid separate patch for each occurrence.

Sorry Alex, I missed to note this yesterday.


Regards,
Sathish


On 10/4/2024 1:46 PM, Advait Dhamorikar wrote:
> Fix shift-count-overflow when creating mask.
> 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@gmail.com>
> ---
>   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..7df402c45f40 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> @@ -388,7 +388,7 @@ static int amdgpu_debugfs_jpeg_sched_mask_get(void *data, u64 *val)
>   		for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
>   			ring = &adev->jpeg.inst[i].ring_dec[j];
>   			if (ring->sched.ready)
> -				mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);
> +				mask |= (u64)1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>   		}
>   	}
>   	*val = mask;
Shuah Khan Oct. 4, 2024, 5:33 p.m. UTC | #2
On 10/4/24 03:15, Sundararaju, Sathishkumar wrote:
> 
> All occurrences of this error fix should have been together in a single patch both in _get and _set callbacks corresponding to f0b19b84d391, please avoid separate patch for each occurrence.
> 
> Sorry Alex, I missed to note this yesterday.
> 
> 
> Regards,
> Sathish

Sathish,

Please don't post on top when responding to kernel emails
and patches. It makes it difficult to follow the discussions

> 
> 
> On 10/4/2024 1:46 PM, Advait Dhamorikar wrote:
>> Fix shift-count-overflow when creating mask.
>> 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@gmail.com>
>> ---
>>   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..7df402c45f40 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
>> @@ -388,7 +388,7 @@ static int amdgpu_debugfs_jpeg_sched_mask_get(void *data, u64 *val)
>>   		for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
>>   			ring = &adev->jpeg.inst[i].ring_dec[j];
>>   			if (ring->sched.ready)
>> -				mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>> +				mask |= (u64)1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>>   		}
>>   	}
>>   	*val = mask;

thanks,
-- Shuah
Alex Deucher Oct. 4, 2024, 6 p.m. UTC | #3
On Fri, Oct 4, 2024 at 5:15 AM Sundararaju, Sathishkumar
<sasundar@amd.com> wrote:
>
>
> All occurrences of this error fix should have been together in a single patch both in _get and _set callbacks corresponding to f0b19b84d391, please avoid separate patch for each occurrence.
>
> Sorry Alex, I missed to note this yesterday.

I've dropped the patch.  Please pick it up once it's fixed up appropriately.

Thanks,

Alex

>
>
> Regards,
> Sathish
>
>
> On 10/4/2024 1:46 PM, Advait Dhamorikar wrote:
>
> Fix shift-count-overflow when creating mask.
> 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@gmail.com>
> ---
>  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..7df402c45f40 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> @@ -388,7 +388,7 @@ static int amdgpu_debugfs_jpeg_sched_mask_get(void *data, u64 *val)
>   for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
>   ring = &adev->jpeg.inst[i].ring_dec[j];
>   if (ring->sched.ready)
> - mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);
> + mask |= (u64)1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>   }
>   }
>   *val = mask;
Sundararaju, Sathishkumar Oct. 5, 2024, 3:34 a.m. UTC | #4
On 10/4/2024 11:30 PM, Alex Deucher wrote:
> On Fri, Oct 4, 2024 at 5:15 AM Sundararaju, Sathishkumar
> <sasundar@amd.com> wrote:
>>
>> All occurrences of this error fix should have been together in a single patch both in _get and _set callbacks corresponding to f0b19b84d391, please avoid separate patch for each occurrence.
>>
>> Sorry Alex, I missed to note this yesterday.
> I've dropped the patch.  Please pick it up once it's fixed up appropriately.
Thanks Alex.

Hi Advait,
Please collate the changes together with Lijo's suggestion as well, 
"1ULL <<" instead of typecast, there are 3 occurrences of the error in 
f0b19b84d391.

Regards,
Sathish
>
> Thanks,
>
> Alex
>
>>
>> Regards,
>> Sathish
>>
>>
>> On 10/4/2024 1:46 PM, Advait Dhamorikar wrote:
>>
>> Fix shift-count-overflow when creating mask.
>> 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@gmail.com>
>> ---
>>   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..7df402c45f40 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
>> @@ -388,7 +388,7 @@ static int amdgpu_debugfs_jpeg_sched_mask_get(void *data, u64 *val)
>>    for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
>>    ring = &adev->jpeg.inst[i].ring_dec[j];
>>    if (ring->sched.ready)
>> - mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>> + mask |= (u64)1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>>    }
>>    }
>>    *val = mask;
Advait Dhamorikar Oct. 5, 2024, 7:05 a.m. UTC | #5
Hi Sathish,

> Please collate the changes together with Lijo's suggestion as well,
> "1ULL <<" instead of typecast, there are 3 occurrences of the error in
> f0b19b84d391.

I could only observe two instances of this error in f0b19b84d391 at:
'mask = (1 << (adev->jpeg.num_jpeg_inst * adev->jpeg.num_jpeg_rings)) - 1;`
and `mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);`

There are a few instances where we can use 1U instead of int as
harvest_config uses unsigned int
(adev->jpeg.harvest_config & (1 << i)
However I think they should be fixed in a separate patch?

Thanks and regards,
Advait

On Sat, 5 Oct 2024 at 09:05, Sundararaju, Sathishkumar <sasundar@amd.com> wrote:
>
>
>
> On 10/4/2024 11:30 PM, Alex Deucher wrote:
> > On Fri, Oct 4, 2024 at 5:15 AM Sundararaju, Sathishkumar
> > <sasundar@amd.com> wrote:
> >>
> >> All occurrences of this error fix should have been together in a single patch both in _get and _set callbacks corresponding to f0b19b84d391, please avoid separate patch for each occurrence.
> >>
> >> Sorry Alex, I missed to note this yesterday.
> > I've dropped the patch.  Please pick it up once it's fixed up appropriately.
> Thanks Alex.
>
> Hi Advait,
> Please collate the changes together with Lijo's suggestion as well,
> "1ULL <<" instead of typecast, there are 3 occurrences of the error in
> f0b19b84d391.
>
> Regards,
> Sathish
> >
> > Thanks,
> >
> > Alex
> >
> >>
> >> Regards,
> >> Sathish
> >>
> >>
> >> On 10/4/2024 1:46 PM, Advait Dhamorikar wrote:
> >>
> >> Fix shift-count-overflow when creating mask.
> >> 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@gmail.com>
> >> ---
> >>   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..7df402c45f40 100644
> >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> >> @@ -388,7 +388,7 @@ static int amdgpu_debugfs_jpeg_sched_mask_get(void *data, u64 *val)
> >>    for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
> >>    ring = &adev->jpeg.inst[i].ring_dec[j];
> >>    if (ring->sched.ready)
> >> - mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);
> >> + mask |= (u64)1 << ((i * adev->jpeg.num_jpeg_rings) + j);
> >>    }
> >>    }
> >>    *val = mask;
>
Christian König Oct. 7, 2024, 1:56 p.m. UTC | #6
Am 05.10.24 um 09:05 schrieb Advait Dhamorikar:
> Hi Sathish,
>
>> Please collate the changes together with Lijo's suggestion as well,
>> "1ULL <<" instead of typecast, there are 3 occurrences of the error in
>> f0b19b84d391.
> I could only observe two instances of this error in f0b19b84d391 at:
> 'mask = (1 << (adev->jpeg.num_jpeg_inst * adev->jpeg.num_jpeg_rings)) - 1;`
> and `mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);`
>
> There are a few instances where we can use 1U instead of int as
> harvest_config uses unsigned int
> (adev->jpeg.harvest_config & (1 << i)
> However I think they should be fixed in a separate patch?

No, all of this are numerical problems where not taken into account the 
size of the destination type.

Saying that all of that are basically just style cleanups which doesn't 
need to be back-ported in any way, so please drop the Fixes: tag.

And you should probably change the subject line to something like 
"drm/amdgpu: cleanup shift coding style".

Regards,
Christian.

>
> Thanks and regards,
> Advait
>
> On Sat, 5 Oct 2024 at 09:05, Sundararaju, Sathishkumar <sasundar@amd.com> wrote:
>>
>>
>> On 10/4/2024 11:30 PM, Alex Deucher wrote:
>>> On Fri, Oct 4, 2024 at 5:15 AM Sundararaju, Sathishkumar
>>> <sasundar@amd.com> wrote:
>>>> All occurrences of this error fix should have been together in a single patch both in _get and _set callbacks corresponding to f0b19b84d391, please avoid separate patch for each occurrence.
>>>>
>>>> Sorry Alex, I missed to note this yesterday.
>>> I've dropped the patch.  Please pick it up once it's fixed up appropriately.
>> Thanks Alex.
>>
>> Hi Advait,
>> Please collate the changes together with Lijo's suggestion as well,
>> "1ULL <<" instead of typecast, there are 3 occurrences of the error in
>> f0b19b84d391.
>>
>> Regards,
>> Sathish
>>> Thanks,
>>>
>>> Alex
>>>
>>>> Regards,
>>>> Sathish
>>>>
>>>>
>>>> On 10/4/2024 1:46 PM, Advait Dhamorikar wrote:
>>>>
>>>> Fix shift-count-overflow when creating mask.
>>>> 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@gmail.com>
>>>> ---
>>>>    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..7df402c45f40 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
>>>> @@ -388,7 +388,7 @@ static int amdgpu_debugfs_jpeg_sched_mask_get(void *data, u64 *val)
>>>>     for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
>>>>     ring = &adev->jpeg.inst[i].ring_dec[j];
>>>>     if (ring->sched.ready)
>>>> - mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>>>> + mask |= (u64)1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>>>>     }
>>>>     }
>>>>     *val = mask;
Advait Dhamorikar Oct. 8, 2024, 3:38 a.m. UTC | #7
Hi Christian,

I am not sure if I correctly understood what you meant,  just to clarify

When you say this
>No, all of this are numerical problems where not taken into account the
>size of the destination type.

>Saying that all of that are basically just style cleanups which doesn't
>need to be back-ported in any way, so please drop the Fixes: tag.

>And you should probably change the subject line to something like
>"drm/amdgpu: cleanup shift coding style".

Are you just talking about this message?
>> There are a few instances where we can use 1U instead of int as
>> harvest_config uses unsigned int
>>(adev->jpeg.harvest_config & (1 << i)
>> However I think they should be fixed in a separate patch?

Or is it intended for the complete previous "Fix unintentional
overflow" patch as well?
And I should just send a v3 with the two changes?

Thanks and regards,
Advait

On Mon, 7 Oct 2024 at 19:26, Christian König
<ckoenig.leichtzumerken@gmail.com> wrote:
>
> Am 05.10.24 um 09:05 schrieb Advait Dhamorikar:
> > Hi Sathish,
> >
> >> Please collate the changes together with Lijo's suggestion as well,
> >> "1ULL <<" instead of typecast, there are 3 occurrences of the error in
> >> f0b19b84d391.
> > I could only observe two instances of this error in f0b19b84d391 at:
> > 'mask = (1 << (adev->jpeg.num_jpeg_inst * adev->jpeg.num_jpeg_rings)) - 1;`
> > and `mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);`
> >
> > There are a few instances where we can use 1U instead of int as
> > harvest_config uses unsigned int
> > (adev->jpeg.harvest_config & (1 << i)
> > However I think they should be fixed in a separate patch?
>
> No, all of this are numerical problems where not taken into account the
> size of the destination type.
>
> Saying that all of that are basically just style cleanups which doesn't
> need to be back-ported in any way, so please drop the Fixes: tag.
>
> And you should probably change the subject line to something like
> "drm/amdgpu: cleanup shift coding style".
>
> Regards,
> Christian.
>
> >
> > Thanks and regards,
> > Advait
> >
> > On Sat, 5 Oct 2024 at 09:05, Sundararaju, Sathishkumar <sasundar@amd.com> wrote:
> >>
> >>
> >> On 10/4/2024 11:30 PM, Alex Deucher wrote:
> >>> On Fri, Oct 4, 2024 at 5:15 AM Sundararaju, Sathishkumar
> >>> <sasundar@amd.com> wrote:
> >>>> All occurrences of this error fix should have been together in a single patch both in _get and _set callbacks corresponding to f0b19b84d391, please avoid separate patch for each occurrence.
> >>>>
> >>>> Sorry Alex, I missed to note this yesterday.
> >>> I've dropped the patch.  Please pick it up once it's fixed up appropriately.
> >> Thanks Alex.
> >>
> >> Hi Advait,
> >> Please collate the changes together with Lijo's suggestion as well,
> >> "1ULL <<" instead of typecast, there are 3 occurrences of the error in
> >> f0b19b84d391.
> >>
> >> Regards,
> >> Sathish
> >>> Thanks,
> >>>
> >>> Alex
> >>>
> >>>> Regards,
> >>>> Sathish
> >>>>
> >>>>
> >>>> On 10/4/2024 1:46 PM, Advait Dhamorikar wrote:
> >>>>
> >>>> Fix shift-count-overflow when creating mask.
> >>>> 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@gmail.com>
> >>>> ---
> >>>>    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..7df402c45f40 100644
> >>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> >>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
> >>>> @@ -388,7 +388,7 @@ static int amdgpu_debugfs_jpeg_sched_mask_get(void *data, u64 *val)
> >>>>     for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
> >>>>     ring = &adev->jpeg.inst[i].ring_dec[j];
> >>>>     if (ring->sched.ready)
> >>>> - mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);
> >>>> + mask |= (u64)1 << ((i * adev->jpeg.num_jpeg_rings) + j);
> >>>>     }
> >>>>     }
> >>>>     *val = mask;
>
Christian König Oct. 8, 2024, 6:56 a.m. UTC | #8
Am 08.10.24 um 05:38 schrieb Advait Dhamorikar:
> Hi Christian,
>
> I am not sure if I correctly understood what you meant,  just to clarify
>
> When you say this
>> No, all of this are numerical problems where not taken into account the
>> size of the destination type.
>> Saying that all of that are basically just style cleanups which doesn't
>> need to be back-ported in any way, so please drop the Fixes: tag.
>> And you should probably change the subject line to something like
>> "drm/amdgpu: cleanup shift coding style".
> Are you just talking about this message?
>>> There are a few instances where we can use 1U instead of int as
>>> harvest_config uses unsigned int
>>> (adev->jpeg.harvest_config & (1 << i)
>>> However I think they should be fixed in a separate patch?
> Or is it intended for the complete previous "Fix unintentional
> overflow" patch as well?

My comment applies to all patches.

Those patches are not really fixing anything because the shift values 
come from some BIOS table and if I remember correctly for example the 
harvest config only contains two meaningful bits.

Fixing the warnings is nice to have, but not really necessary for 
correctness. So the patches shouldn't be back-ported and don't need any 
Fixes tags.

Regards,
Christian.

> And I should just send a v3 with the two changes?
>
> Thanks and regards,
> Advait
>
> On Mon, 7 Oct 2024 at 19:26, Christian König
> <ckoenig.leichtzumerken@gmail.com> wrote:
>> Am 05.10.24 um 09:05 schrieb Advait Dhamorikar:
>>> Hi Sathish,
>>>
>>>> Please collate the changes together with Lijo's suggestion as well,
>>>> "1ULL <<" instead of typecast, there are 3 occurrences of the error in
>>>> f0b19b84d391.
>>> I could only observe two instances of this error in f0b19b84d391 at:
>>> 'mask = (1 << (adev->jpeg.num_jpeg_inst * adev->jpeg.num_jpeg_rings)) - 1;`
>>> and `mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);`
>>>
>>> There are a few instances where we can use 1U instead of int as
>>> harvest_config uses unsigned int
>>> (adev->jpeg.harvest_config & (1 << i)
>>> However I think they should be fixed in a separate patch?
>> No, all of this are numerical problems where not taken into account the
>> size of the destination type.
>>
>> Saying that all of that are basically just style cleanups which doesn't
>> need to be back-ported in any way, so please drop the Fixes: tag.
>>
>> And you should probably change the subject line to something like
>> "drm/amdgpu: cleanup shift coding style".
>>
>> Regards,
>> Christian.
>>
>>> Thanks and regards,
>>> Advait
>>>
>>> On Sat, 5 Oct 2024 at 09:05, Sundararaju, Sathishkumar <sasundar@amd.com> wrote:
>>>>
>>>> On 10/4/2024 11:30 PM, Alex Deucher wrote:
>>>>> On Fri, Oct 4, 2024 at 5:15 AM Sundararaju, Sathishkumar
>>>>> <sasundar@amd.com> wrote:
>>>>>> All occurrences of this error fix should have been together in a single patch both in _get and _set callbacks corresponding to f0b19b84d391, please avoid separate patch for each occurrence.
>>>>>>
>>>>>> Sorry Alex, I missed to note this yesterday.
>>>>> I've dropped the patch.  Please pick it up once it's fixed up appropriately.
>>>> Thanks Alex.
>>>>
>>>> Hi Advait,
>>>> Please collate the changes together with Lijo's suggestion as well,
>>>> "1ULL <<" instead of typecast, there are 3 occurrences of the error in
>>>> f0b19b84d391.
>>>>
>>>> Regards,
>>>> Sathish
>>>>> Thanks,
>>>>>
>>>>> Alex
>>>>>
>>>>>> Regards,
>>>>>> Sathish
>>>>>>
>>>>>>
>>>>>> On 10/4/2024 1:46 PM, Advait Dhamorikar wrote:
>>>>>>
>>>>>> Fix shift-count-overflow when creating mask.
>>>>>> 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@gmail.com>
>>>>>> ---
>>>>>>     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..7df402c45f40 100644
>>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
>>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
>>>>>> @@ -388,7 +388,7 @@ static int amdgpu_debugfs_jpeg_sched_mask_get(void *data, u64 *val)
>>>>>>      for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
>>>>>>      ring = &adev->jpeg.inst[i].ring_dec[j];
>>>>>>      if (ring->sched.ready)
>>>>>> - mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>>>>>> + mask |= (u64)1 << ((i * adev->jpeg.num_jpeg_rings) + j);
>>>>>>      }
>>>>>>      }
>>>>>>      *val = mask;
diff mbox series

Patch

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
index 95e2796919fc..7df402c45f40 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_jpeg.c
@@ -388,7 +388,7 @@  static int amdgpu_debugfs_jpeg_sched_mask_get(void *data, u64 *val)
 		for (j = 0; j < adev->jpeg.num_jpeg_rings; ++j) {
 			ring = &adev->jpeg.inst[i].ring_dec[j];
 			if (ring->sched.ready)
-				mask |= 1 << ((i * adev->jpeg.num_jpeg_rings) + j);
+				mask |= (u64)1 << ((i * adev->jpeg.num_jpeg_rings) + j);
 		}
 	}
 	*val = mask;