summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_crtc.c
diff options
context:
space:
mode:
authorMaarten Lankhorst2015-09-09 13:46:21 +0200
committerDaniel Vetter2015-09-09 16:47:45 +0200
commitc099b55a6fa6f9ec2f26105c76df462d7c7c7d5b (patch)
treec5fa96627d3ddac751f9de02af9c8c28026f7bd1 /drivers/gpu/drm/drm_crtc.c
parentdrm: move drm_class into drm_sysfs.c (diff)
downloadkernel-qcow2-linux-c099b55a6fa6f9ec2f26105c76df462d7c7c7d5b.tar.gz
kernel-qcow2-linux-c099b55a6fa6f9ec2f26105c76df462d7c7c7d5b.tar.xz
kernel-qcow2-linux-c099b55a6fa6f9ec2f26105c76df462d7c7c7d5b.zip
drm/core: Do not call drm_framebuffer_remove internally during teardown.
This may cause issues because encoders are already destroyed so removing active primaries may use freed memory. Instead free the fb directly, ignoring refcount. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/drm_crtc.c')
-rw-r--r--drivers/gpu/drm/drm_crtc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 474f328535a1..9b9c4b41422a 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -5742,7 +5742,7 @@ void drm_mode_config_cleanup(struct drm_device *dev)
*/
WARN_ON(!list_empty(&dev->mode_config.fb_list));
list_for_each_entry_safe(fb, fbt, &dev->mode_config.fb_list, head) {
- drm_framebuffer_remove(fb);
+ drm_framebuffer_free(&fb->refcount);
}
list_for_each_entry_safe(plane, plt, &dev->mode_config.plane_list,