aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndres Salomon <dilinger@queued.net>2009-03-31 18:25:30 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-01 11:59:31 -0400
commiteb8972b4407f81b07ea6fc71fd91f9fc7a35a81e (patch)
tree19b3bed57ec0c767d39a509ae99fa973016d6b8a
parent909baf0092545e5c2082b045303e7a4b1d2a0522 (diff)
amifb: check fb_alloc_cmap return value and handle failure properly
Signed-off-by: Andres Salomon <dilinger@debian.org> Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/video/amifb.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/amifb.c b/drivers/video/amifb.c
index 100f23661465..82bedd7f7789 100644
--- a/drivers/video/amifb.c
+++ b/drivers/video/amifb.c
@@ -2437,7 +2437,9 @@ default_chipset:
2437 goto amifb_error; 2437 goto amifb_error;
2438 } 2438 }
2439 2439
2440 fb_alloc_cmap(&fb_info.cmap, 1<<fb_info.var.bits_per_pixel, 0); 2440 err = fb_alloc_cmap(&fb_info.cmap, 1<<fb_info.var.bits_per_pixel, 0);
2441 if (err)
2442 goto amifb_error;
2441 2443
2442 if (register_framebuffer(&fb_info) < 0) { 2444 if (register_framebuffer(&fb_info) < 0) {
2443 err = -EINVAL; 2445 err = -EINVAL;
@@ -2456,7 +2458,8 @@ amifb_error:
2456 2458
2457static void amifb_deinit(void) 2459static void amifb_deinit(void)
2458{ 2460{
2459 fb_dealloc_cmap(&fb_info.cmap); 2461 if (fb_info.cmap.len)
2462 fb_dealloc_cmap(&fb_info.cmap);
2460 chipfree(); 2463 chipfree();
2461 if (videomemory) 2464 if (videomemory)
2462 iounmap((void*)videomemory); 2465 iounmap((void*)videomemory);