summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSudip Mukherjee2016-06-12 17:03:56 +0200
committerDaniel Vetter2016-06-13 09:53:09 +0200
commit2a927623e864f98479c4be3c560ab8fbb0e0283c (patch)
tree997e1577d9e8d31dec38c1f57dd56a96bd5e567d
parentdrm: i915: Rely on the default ->best_encoder() behavior where appropriate (diff)
downloadkernel-qcow2-linux-2a927623e864f98479c4be3c560ab8fbb0e0283c.tar.gz
kernel-qcow2-linux-2a927623e864f98479c4be3c560ab8fbb0e0283c.tar.xz
kernel-qcow2-linux-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
-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;
}