Skip to content

Commit 79fcd44

Browse files
xinhui panalexdeucher
authored andcommitted
drm/amdgpu: Fix memory leak
drm_gem_object_put() should be paired with drm_gem_object_lookup(). All gem objs are saved in fb->base.obj[]. Need put the old first before assign a new obj. Trigger VRAM leak by running command below $ service gdm restart Signed-off-by: xinhui pan <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 0303e1b commit 79fcd44

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

drivers/gpu/drm/amd/amdgpu/amdgpu_display.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -955,8 +955,9 @@ int amdgpu_display_framebuffer_init(struct drm_device *dev,
955955
}
956956

957957
for (i = 1; i < rfb->base.format->num_planes; ++i) {
958+
drm_gem_object_get(rfb->base.obj[0]);
959+
drm_gem_object_put(rfb->base.obj[i]);
958960
rfb->base.obj[i] = rfb->base.obj[0];
959-
drm_gem_object_get(rfb->base.obj[i]);
960961
}
961962

962963
return 0;
@@ -1002,6 +1003,7 @@ amdgpu_display_user_framebuffer_create(struct drm_device *dev,
10021003
return ERR_PTR(ret);
10031004
}
10041005

1006+
drm_gem_object_put(obj);
10051007
return &amdgpu_fb->base;
10061008
}
10071009

0 commit comments

Comments
 (0)