[PATCH] drm/amdgpu: : Fix the null pointer dereference for amdgpu_device_switch_gang

Christian König christian.koenig at amd.com
Wed Jul 3 11:17:26 UTC 2024


Well Coverity probably can't know that and will keep complaining.

Maybe we can add some extra code to point out that old can never be NULL 
here?

Regards,
Christian.

Am 03.07.24 um 13:06 schrieb Zhou, Bob:
> [AMD Official Use Only - AMD Internal Distribution Only]
>
> Hi Christian
>
> Thanks for your comments.
> I miss the before logic has limited the generated pointer.
>
> Regards,
> Bob
>
> -----Original Message-----
> From: Koenig, Christian <Christian.Koenig at amd.com>
> Sent: 2024年7月3日 17:26
> To: Zhou, Bob <Bob.Zhou at amd.com>; amd-gfx at lists.freedesktop.org; Huang, Tim <Tim.Huang at amd.com>; Zhang, Jesse(Jie) <Jesse.Zhang at amd.com>
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>
> Subject: Re: [PATCH] drm/amdgpu: : Fix the null pointer dereference for amdgpu_device_switch_gang
>
> Am 03.07.24 um 11:01 schrieb Bob Zhou:
>> To avoid null pointer dereference reported by Coverity, so add null
>> pointer check for the return of amdgpu_device_get_gang().
> NAK, that's complete nonsense in the first place.
>
> The pointer is guaranteed to be never NULL or otherwise the logic would have crashed long before.
>
> Regards,
> Christian.
>
>> Signed-off-by: Bob Zhou <bob.zhou at amd.com>
>> ---
>>    drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 +-
>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> index bcacf2e35eba..c1d82c346daa 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> @@ -6569,7 +6569,7 @@ struct dma_fence *amdgpu_device_switch_gang(struct amdgpu_device *adev,
>>                if (old == gang)
>>                        break;
>>
>> -             if (!dma_fence_is_signaled(old))
>> +             if (!old || !dma_fence_is_signaled(old))
>>                        return old;
>>
>>        } while (cmpxchg((struct dma_fence __force **)&adev->gang_submit,



More information about the amd-gfx mailing list