drm: fb: cma: fix memory leak
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Sun, 12 Jun 2016 15:03:56 +0000 (16:03 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 13 Jun 2016 07:53:09 +0000 (09:53 +0200)
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
drivers/gpu/drm/drm_fb_cma_helper.c

index 2e7ef0b325e29d4d67248fc90502747eb0e609a2..c0b0c718994a4133e2357e8921d2c9361be6ca1b 100644 (file)
@@ -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;
        }