[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20090209211614.44459a12.krzysztof.h1@wp.pl>
Date: Mon, 9 Feb 2009 21:16:14 +0100
From: Krzysztof Helt <krzysztof.h1@...pl>
To: Andres Salomon <dilinger@...ued.net>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
linux-fbdev-devel@...ts.sourceforge.net,
linux-kernel@...r.kernel.org, adaplas@...il.com
Subject: Re: [Linux-fbdev-devel] [PATCH 13/15] amba-clcd: fix cmap memory
leaks
On Sat, 7 Feb 2009 12:18:48 -0500
Andres Salomon <dilinger@...ued.net> wrote:
>
> - fix cmap leak in removal path
> - fix cmap leak when register_framebuffer fails
>
> Signed-off-by: Andres Salomon <dilinger@...ian.org>
> ---
Acked-by: Krzysztof Helt <krzysztof.h1@...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
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists