lkml.org 
[lkml]   [2009]   [Feb]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Linux-fbdev-devel] [PATCH 13/15] amba-clcd: fix cmap memory leaks
On Sat, 7 Feb 2009 12:18:48 -0500
Andres Salomon <dilinger@queued.net> wrote:

>
> - fix cmap leak in removal path
> - fix cmap leak when register_framebuffer fails
>
> Signed-off-by: Andres Salomon <dilinger@debian.org>
> ---

Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl>

One comment (see below).

> drivers/video/amba-clcd.c | 8 +++++++-
> 1 files changed, 7 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/video/amba-clcd.c b/drivers/video/amba-clcd.c
> index 4e046fe..61050ab 100644
> --- a/drivers/video/amba-clcd.c
> +++ b/drivers/video/amba-clcd.c
> @@ -408,7 +408,9 @@ static int clcdfb_register(struct clcd_fb *fb)
> /*
> * Allocate colourmap.
> */
> - fb_alloc_cmap(&fb->fb.cmap, 256, 0);
> + ret = fb_alloc_cmap(&fb->fb.cmap, 256, 0);
> + if (ret)
> + goto unmap;
>
> /*
> * Ensure interrupts are disabled.
> @@ -426,6 +428,8 @@ static int clcdfb_register(struct clcd_fb *fb)
>
> printk(KERN_ERR "CLCD: cannot register framebuffer (%d)\n", ret);
>
> + fb_dealloc_cmap(&fb->fb.cmap);
> + unmap:
> iounmap(fb->regs);
> free_clk:
> clk_put(fb->clk);
> @@ -485,6 +489,8 @@ static int clcdfb_remove(struct amba_device *dev)
>
> clcdfb_disable(fb);
> unregister_framebuffer(&fb->fb);
> + if (fb->fb.cmap.len)
> + fb_dealloc_cmap(&fb->fb.cmap);

Is this if() needed? Is this function called twice (or more) or
can it be called without the cmap allocated?

> iounmap(fb->regs);
> clk_put(fb->clk);
>
> --
> 1.5.6.5
>


\
 
 \ /
  Last update: 2009-02-09 21:15    [W:0.038 / U:0.120 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site