projects
/
platform
/
kernel
/
linux-rpi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
dcb1394
)
drm/i915: Fix double unref in intelfb_alloc failure path
author
Lukas Wunner
<lukas@wunner.de>
Thu, 22 Oct 2015 11:37:18 +0000
(13:37 +0200)
committer
Jani Nikula
<jani.nikula@intel.com>
Mon, 9 Nov 2015 14:03:00 +0000
(16:03 +0200)
In intelfb_alloc(), if the call to intel_pin_and_fence_fb_obj() fails,
the bo is unrefed twice: By drm_framebuffer_remove() and once more by
drm_gem_object_unreference(). Fix it.
Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link:
http://patchwork.freedesktop.org/patch/msgid/cd7b33330621a350b0159ec5e098297b139cfaf7.1446892879.git.lukas@wunner.de
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_fbdev.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/i915/intel_fbdev.c
b/drivers/gpu/drm/i915/intel_fbdev.c
index
840d6bf
..
2240e70
100644
(file)
--- a/
drivers/gpu/drm/i915/intel_fbdev.c
+++ b/
drivers/gpu/drm/i915/intel_fbdev.c
@@
-156,8
+156,9
@@
static int intelfb_alloc(struct drm_fb_helper *helper,
fb = __intel_framebuffer_create(dev, &mode_cmd, obj);
if (IS_ERR(fb)) {
+ drm_gem_object_unreference(&obj->base);
ret = PTR_ERR(fb);
- goto out
_unref
;
+ goto out;
}
/* Flush everything out, we'll be doing GTT only from now on */
@@
-173,8
+174,6
@@
static int intelfb_alloc(struct drm_fb_helper *helper,
out_fb:
drm_framebuffer_remove(fb);
-out_unref:
- drm_gem_object_unreference(&obj->base);
out:
return ret;
}