lkml.org 
[lkml]   [2021]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 50/52] drm/amd/amdgpu: fix refcount leak
    Date
    From: Jingwen Chen <Jingwen.Chen2@amd.com>

    [ Upstream commit fa7e6abc75f3d491bc561734312d065dc9dc2a77 ]

    [Why]
    the gem object rfb->base.obj[0] is get according to num_planes
    in amdgpufb_create, but is not put according to num_planes

    [How]
    put rfb->base.obj[0] in amdgpu_fbdev_destroy according to num_planes

    Signed-off-by: Jingwen Chen <Jingwen.Chen2@amd.com>
    Acked-by: Christian König <christian.koenig@amd.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
    index fd94a17fb2c6..46522804c7d8 100644
    --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
    +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
    @@ -289,10 +289,13 @@ static int amdgpufb_create(struct drm_fb_helper *helper,
    static int amdgpu_fbdev_destroy(struct drm_device *dev, struct amdgpu_fbdev *rfbdev)
    {
    struct amdgpu_framebuffer *rfb = &rfbdev->rfb;
    + int i;

    drm_fb_helper_unregister_fbi(&rfbdev->helper);

    if (rfb->base.obj[0]) {
    + for (i = 0; i < rfb->base.format->num_planes; i++)
    + drm_gem_object_put(rfb->base.obj[0]);
    amdgpufb_destroy_pinned_object(rfb->base.obj[0]);
    rfb->base.obj[0] = NULL;
    drm_framebuffer_unregister_private(&rfb->base);
    --
    2.30.2
    \
     
     \ /
      Last update: 2021-05-24 17:07    [W:2.746 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site