[PATCH] drm/ttm: fix leaking fences via ttm_buffer_object_transfer

Daniel Vetter daniel at ffwll.ch
Wed Feb 26 14:00:07 UTC 2020


On Wed, Feb 26, 2020 at 2:30 PM Christian König
<ckoenig.leichtzumerken at gmail.com> wrote:
>
> Am 25.02.20 um 20:12 schrieb Christian König:
> > Am 25.02.20 um 20:11 schrieb Alex Deucher:
> >> On Tue, Feb 25, 2020 at 2:09 PM Christian König
> >> <ckoenig.leichtzumerken at gmail.com> wrote:
> >>> Am 25.02.20 um 19:56 schrieb Alex Deucher:
> >>>> From: Ahzo <Ahzo at tutanota.com>
> >>>>
> >>>> Set the drm_device to NULL, so that the newly created buffer object
> >>>> doesn't appear to use the embedded gem object.
> >>>>
> >>>> This is necessary, because otherwise no corresponding dma_resv_fini
> >>>> for
> >>>> the dma_resv_init is called, resulting in a memory leak.
> >>>>
> >>>> The dma_resv_fini in ttm_bo_release_list is only called if the
> >>>> embedded
> >>>> gem object is not used, which is determined by checking if the
> >>>> drm_device is NULL.
> >>>>
> >>>> Bug:
> >>>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitlab.freedesktop.org%2Fdrm%2Famd%2Fissues%2F958&data=02%7C01%7Cchristian.koenig%40amd.com%7Caa3f774da03e4dfcc09a08d7ba268305%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637182546879144030&sdata=N8WxYZZRj5obMU5SLv0giog0a1sCYi%2FouxSuWNom0gw%3D&reserved=0
> >>>> Fixes: 1e053b10ba60 ("drm/ttm: use gem reservation object")
> >>>> Signed-off-by: Ahzo <Ahzo at tutanota.com>
> >>>> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> >>> Good catch I was trying to hunt that one down as well.
> >>>
> >>> Reviewed-by: Christian König <christian.koenig at amd.com>
> >> Can you apply it to drm-misc?
> >
> > Sure, but not today. Need to get the kids to bed.
>
> So just pushed to drm-misc-fixes. Do we also need that on
> amd-staging-drm-next?

Backmerge -rc4 (once it's released) probably a good idea. Or
cherry-pick with a note why you needed it real quick.
-Daniel

>
> Christian.
>
> >
> > Christian.
> >
> >>
> >> Thanks,
> >>
> >> Alex
> >>
> >>>> ---
> >>>>    drivers/gpu/drm/ttm/ttm_bo_util.c | 1 +
> >>>>    1 file changed, 1 insertion(+)
> >>>>
> >>>> diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c
> >>>> b/drivers/gpu/drm/ttm/ttm_bo_util.c
> >>>> index c8e359ded1df..44c1e7adfb7c 100644
> >>>> --- a/drivers/gpu/drm/ttm/ttm_bo_util.c
> >>>> +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
> >>>> @@ -514,6 +514,7 @@ static int ttm_buffer_object_transfer(struct
> >>>> ttm_buffer_object *bo,
> >>>>                fbo->base.base.resv = &fbo->base.base._resv;
> >>>>
> >>>>        dma_resv_init(&fbo->base.base._resv);
> >>>> +     fbo->base.base.dev = NULL;
> >>>>        ret = dma_resv_trylock(&fbo->base.base._resv);
> >>>>        WARN_ON(!ret);
> >>>>
> >
> > _______________________________________________
> > amd-gfx mailing list
> > amd-gfx at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list