aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_fbdev.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2014-02-10 12:00:38 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-02-12 12:53:02 -0500
commitef2d633e9bcfdb73e536ca81b835dd015fe24ceb (patch)
treed16d298b2b78362a08235cb5f97686465e87d1e3 /drivers/gpu/drm/i915/intel_fbdev.c
parenta0bae57f5b9d61c64f5c2675a53fec27baf583d9 (diff)
drm/i915: Use normal fb deref for the fbcon framebuffer
Now that it's a normally kmalloce buffer we can use the usual cleanup paths. The upside here is that if we get the refcounting wrong will be able to catch it, since the drm core will complain about leftover framebuffers and kref about underflows. v2: Kill intel_framebuffer_fini - no longer needed now that we refcount all fbs properly and only confusing. v3: We actually still need to call unregister_private to remove the fb from the idr and drop the idr reference - the final unref doesn't do that. So much for remembering my own fb liftime rules. Reported by Imre Deak. Cc: Jesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> (v2) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_fbdev.c')
-rw-r--r--drivers/gpu/drm/i915/intel_fbdev.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
index cd969c3c301e..9aa26e59a1ab 100644
--- a/drivers/gpu/drm/i915/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/intel_fbdev.c
@@ -269,8 +269,7 @@ static void intel_fbdev_destroy(struct drm_device *dev,
269 drm_fb_helper_fini(&ifbdev->helper); 269 drm_fb_helper_fini(&ifbdev->helper);
270 270
271 drm_framebuffer_unregister_private(&ifbdev->fb->base); 271 drm_framebuffer_unregister_private(&ifbdev->fb->base);
272 intel_framebuffer_fini(ifbdev->fb); 272 drm_framebuffer_unreference(&ifbdev->fb->base);
273 kfree(ifbdev->fb);
274} 273}
275 274
276int intel_fbdev_init(struct drm_device *dev) 275int intel_fbdev_init(struct drm_device *dev)