aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_fb_cma_helper.c
diff options
context:
space:
mode:
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>2016-06-12 16:03:56 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2016-06-13 09:53:09 +0200
commit2a927623e864f98479c4be3c560ab8fbb0e0283c (patch)
tree997e1577d9e8d31dec38c1f57dd56a96bd5e567d /drivers/gpu/drm/drm_fb_cma_helper.c
parentdrm: i915: Rely on the default ->best_encoder() behavior where appropriate (diff)
downloadlinux-dev-2a927623e864f98479c4be3c560ab8fbb0e0283c.tar.xz
linux-dev-2a927623e864f98479c4be3c560ab8fbb0e0283c.zip
drm: fb: cma: fix memory leak
We may have a situation that the memory allocation for fbdefio fails and then the allocation for fbops may succeed as some memory has been freed somewhere. Lets free fbops also to face these rare situtation. Since kfree can handle arguments as NULL, there should not be any problem in calling both the kfree(). Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk> Fixes: 199c77179c87 ("drm/fb-cma-helper: Add fb_deferred_io support") Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1465743836-6228-1-git-send-email-sudipm.mukherjee@gmail.com
Diffstat (limited to 'drivers/gpu/drm/drm_fb_cma_helper.c')
-rw-r--r--drivers/gpu/drm/drm_fb_cma_helper.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
index 2e7ef0b325e2..c0b0c718994a 100644
--- a/drivers/gpu/drm/drm_fb_cma_helper.c
+++ b/drivers/gpu/drm/drm_fb_cma_helper.c
@@ -346,6 +346,7 @@ static int drm_fbdev_cma_defio_init(struct fb_info *fbi,
fbops = kzalloc(sizeof(*fbops), GFP_KERNEL);
if (!fbdefio || !fbops) {
kfree(fbdefio);
+ kfree(fbops);
return -ENOMEM;
}