* [PATCH 13/15] amba-clcd: fix cmap memory leaks
@ 2009-02-07 17:18 Andres Salomon
2009-02-09 20:16 ` [Linux-fbdev-devel] " Krzysztof Helt
0 siblings, 1 reply; 3+ messages in thread
From: Andres Salomon @ 2009-02-07 17:18 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-fbdev-devel, linux-kernel, adaplas
- fix cmap leak in removal path
- fix cmap leak when register_framebuffer fails
Signed-off-by: Andres Salomon <dilinger@debian.org>
---
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);
iounmap(fb->regs);
clk_put(fb->clk);
--
1.5.6.5
------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Linux-fbdev-devel] [PATCH 13/15] amba-clcd: fix cmap memory leaks
2009-02-07 17:18 [PATCH 13/15] amba-clcd: fix cmap memory leaks Andres Salomon
@ 2009-02-09 20:16 ` Krzysztof Helt
2009-02-09 21:55 ` Andres Salomon
0 siblings, 1 reply; 3+ messages in thread
From: Krzysztof Helt @ 2009-02-09 20:16 UTC (permalink / raw)
To: Andres Salomon; +Cc: Andrew Morton, linux-fbdev-devel, linux-kernel, adaplas
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
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Linux-fbdev-devel] [PATCH 13/15] amba-clcd: fix cmap memory leaks
2009-02-09 20:16 ` [Linux-fbdev-devel] " Krzysztof Helt
@ 2009-02-09 21:55 ` Andres Salomon
0 siblings, 0 replies; 3+ messages in thread
From: Andres Salomon @ 2009-02-09 21:55 UTC (permalink / raw)
To: Krzysztof Helt; +Cc: Andrew Morton, linux-fbdev-devel, linux-kernel, adaplas
On Mon, 9 Feb 2009 21:16:14 +0100
Krzysztof Helt <krzysztof.h1@wp.pl> wrote:
> 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).
>
[...]
> > @@ -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?
It was added as a precaution due to the fb->board->remove callbacks,
but I think I misunderstood the code. So my official answer is "I'm not
sure." :)
>
> > iounmap(fb->regs);
> > clk_put(fb->clk);
> >
> > --
> > 1.5.6.5
> >
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-02-09 21:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-07 17:18 [PATCH 13/15] amba-clcd: fix cmap memory leaks Andres Salomon
2009-02-09 20:16 ` [Linux-fbdev-devel] " Krzysztof Helt
2009-02-09 21:55 ` Andres Salomon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).