[PATCH] drm/amdgpu: fix use-after-free issue
Christian König
christian.koenig at amd.com
Mon Apr 22 11:31:39 UTC 2024
Am 22.04.24 um 13:29 schrieb Lazar, Lijo:
> On 4/22/2024 4:52 PM, Christian König wrote:
>> Am 22.04.24 um 11:37 schrieb Lazar, Lijo:
>>> On 4/22/2024 2:59 PM, Christian König wrote:
>>>> Am 22.04.24 um 10:47 schrieb Jack Xiao:
>>>>> Delete fence fallback timer to fix the ramdom
>>>>> use-after-free issue.
>>>> That's already done in amdgpu_fence_driver_hw_fini() and absolutely
>>>> shouldn't be in amdgpu_ring_fini().
>>>>
>>>> And the kfree(ring->fence_drv.fences); shouldn't be there either since
>>>> that is done in amdgpu_fence_driver_sw_fini().
>>>>
>>> In the present logic, these are part of special rings dynamically
>>> created for mes self tests with
>>> amdgpu_mes_add_ring/amdgpu_mes_remove_ring.
>> Ok, we should probably stop doing that altogether.
>>
>> Shashanks work of utilizing the MES in userspace is nearly finished and
>> we don't really need the MES test in the kernel any more.
>>
> A v2 of the patch is posted. Can we use it temporarily till Shashank's
> work is in place?
Yes, absolutely.
> Assuming Shashank's work will also include removing
> MES self test in kernel.
Yes, that was the long term plan. But no idea when we can completely
upstream that work.
Regards,
Christian.
>
> Thanks,
> Lijo
>
>> Regards,
>> Christian.
>>
>>> Thanks,
>>> Lijo
>>>
>>>> Regards,
>>>> Christian.
>>>>
>>>>> Signed-off-by: Jack Xiao <Jack.Xiao at amd.com>
>>>>> ---
>>>>> drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 1 +
>>>>> 1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>>>>> index 06f0a6534a94..93ab9faa2d72 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c
>>>>> @@ -390,6 +390,7 @@ void amdgpu_ring_fini(struct amdgpu_ring *ring)
>>>>> &ring->gpu_addr,
>>>>> (void **)&ring->ring);
>>>>> } else {
>>>>> + del_timer_sync(&ring->fence_drv.fallback_timer);
>>>>> kfree(ring->fence_drv.fences);
>>>>> }
>>>>>
More information about the amd-gfx
mailing list