aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorAmol Lad <amol@verismonetworks.com>2006-12-08 05:40:15 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-08 11:29:05 -0500
commit6792951b6ad13d7b2fff71ae7d2982b2fa1d6788 (patch)
treeb4dc4d0e472a15c91e29495c1e6086172036fbd5 /drivers/video
parentb2a85aebf9d6cb671085d58dfbbd7b11269d49eb (diff)
[PATCH] ioremap balanced with iounmap for drivers/video/atafb
ioremap must be balanced by an iounmap and failing to do so can result in a memory leak. Signed-off-by: Amol Lad <amol@verismonetworks.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/atafb.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/video/atafb.c b/drivers/video/atafb.c
index 02c41a626fa2..602db660bc73 100644
--- a/drivers/video/atafb.c
+++ b/drivers/video/atafb.c
@@ -2804,8 +2804,19 @@ int __init atafb_init(void)
2804 atafb_set_disp(-1, &fb_info); 2804 atafb_set_disp(-1, &fb_info);
2805 do_install_cmap(0, &fb_info); 2805 do_install_cmap(0, &fb_info);
2806 2806
2807 if (register_framebuffer(&fb_info) < 0) 2807 if (register_framebuffer(&fb_info) < 0) {
2808#ifdef ATAFB_EXT
2809 if (external_addr) {
2810 iounmap(external_addr);
2811 external_addr = NULL;
2812 }
2813 if (external_vgaiobase) {
2814 iounmap((void*)external_vgaiobase);
2815 external_vgaiobase = 0;
2816 }
2817#endif
2808 return -EINVAL; 2818 return -EINVAL;
2819 }
2809 2820
2810 printk("Determined %dx%d, depth %d\n", 2821 printk("Determined %dx%d, depth %d\n",
2811 disp.var.xres, disp.var.yres, disp.var.bits_per_pixel); 2822 disp.var.xres, disp.var.yres, disp.var.bits_per_pixel);