diff options
author | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2015-09-09 13:46:21 +0200 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-09-09 16:47:45 +0200 |
commit | c099b55a6fa6f9ec2f26105c76df462d7c7c7d5b (patch) | |
tree | c5fa96627d3ddac751f9de02af9c8c28026f7bd1 /drivers/gpu/drm/drm_crtc.c | |
parent | fcc9021343212f6a4a52a085b3d383ab29a9ac0a (diff) | |
download | op-kernel-dev-c099b55a6fa6f9ec2f26105c76df462d7c7c7d5b.zip op-kernel-dev-c099b55a6fa6f9ec2f26105c76df462d7c7c7d5b.tar.gz |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 474f328..9b9c4b4 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, |