diff options
author | Amol Lad <amol@verismonetworks.com> | 2006-12-08 05:40:15 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-08 11:29:05 -0500 |
commit | 6792951b6ad13d7b2fff71ae7d2982b2fa1d6788 (patch) | |
tree | b4dc4d0e472a15c91e29495c1e6086172036fbd5 /drivers/video | |
parent | b2a85aebf9d6cb671085d58dfbbd7b11269d49eb (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.c | 13 |
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); |