[PATCH] drm/amdgpu: add the checking to avoid NULL pointer dereference

Koenig, Christian Christian.Koenig at amd.com
Fri Nov 23 18:10:52 UTC 2018


Am 23.11.18 um 15:10 schrieb Zhou, David(ChunMing):
>
> 在 2018/11/23 21:30, Koenig, Christian 写道:
>> Am 23.11.18 um 14:27 schrieb Zhou, David(ChunMing):
>>> 在 2018/11/22 19:25, Christian König 写道:
>>>> Am 22.11.18 um 07:56 schrieb Sharma, Deepak:
>>>>> when returned fence is not valid mostly due to userspace ignored
>>>>> previous error causes NULL pointer dereference.
>>>> Again, this is clearly incorrect. The my other mails on the earlier
>>>> patch.
>>> Sorry for I didn't get your history, but looks from the patch itself, it
>>> is still a valid patch, isn't it?
>> No, the semantic of amdgpu_ctx_get_fence() is that we return NULL when
>> the fence is already signaled.
>>
>> So this patch could totally break userspace because it changes the
>> behavior when we try to sync to an already signaled fence.
> Ah, I got your meaning, how about attached patch?

Yeah something like this, but I would just give the 
DRM_SYNCOBJ_CREATE_SIGNALED instead.

I mean that's what this flag is good for isn't it?

Christian.

>
> -David
>> If that patch was applied then please revert it immediately.
>>
>> Christian.
>>
>>> -David
>>>> If you have already pushed the patch then please revert.
>>>>
>>>> Christian.
>>>>
>>>>> Signed-off-by: Deepak Sharma <Deepak.Sharma at amd.com>
>>>>> ---
>>>>>      drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 ++
>>>>>      1 file changed, 2 insertions(+)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
>>>>> index 024dfbd87f11..14166cd8a12f 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
>>>>> @@ -1403,6 +1403,8 @@ static struct dma_fence
>>>>> *amdgpu_cs_get_fence(struct amdgpu_device *adev,
>>>>>            fence = amdgpu_ctx_get_fence(ctx, entity, user->seq_no);
>>>>>          amdgpu_ctx_put(ctx);
>>>>> +    if(!fence)
>>>>> +        return ERR_PTR(-EINVAL);
>>>>>            return fence;
>>>>>      }



More information about the amd-gfx mailing list