From: Andrzej Hajda Date: Tue, 15 Apr 2014 13:33:01 +0000 (+0200) Subject: drm/exynos: balance framebuffer refcount X-Git-Tag: v3.15-rc4~24^2~3 X-Git-Url: http://git.cascardo.eti.br/?a=commitdiff_plain;h=25c8b5c3048cb6c98d402ca8d4735ccf910f727c;p=cascardo%2Flinux.git drm/exynos: balance framebuffer refcount exynos_drm_crtc_mode_set assigns primary framebuffer to plane without taking reference. Then during framebuffer removal it is dereferenced twice, causing oops. The patch fixes it. Signed-off-by: Andrzej Hajda Signed-off-by: Inki Dae Signed-off-by: Dave Airlie --- diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c index e930d4fe29c7..1ef5ab9c9d51 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c @@ -145,6 +145,7 @@ exynos_drm_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode, plane->crtc = crtc; plane->fb = crtc->primary->fb; + drm_framebuffer_reference(plane->fb); return 0; }