From: Amol Lad ioremap must be balanced by an iounmap and failing to do so can result in a memory leak. Signed-off-by: Amol Lad Cc: "Antonino A. Daplas" Signed-off-by: Andrew Morton --- drivers/video/atafb.c | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletion(-) diff -puN drivers/video/atafb.c~ioremap-balanced-with-iounmap-for-drivers-video-atafb drivers/video/atafb.c --- a/drivers/video/atafb.c~ioremap-balanced-with-iounmap-for-drivers-video-atafb +++ a/drivers/video/atafb.c @@ -2804,8 +2804,19 @@ int __init atafb_init(void) atafb_set_disp(-1, &fb_info); do_install_cmap(0, &fb_info); - if (register_framebuffer(&fb_info) < 0) + if (register_framebuffer(&fb_info) < 0) { +#ifdef ATAFB_EXT + if (external_addr) { + iounmap(external_addr); + external_addr = NULL; + } + if (external_vgaiobase) { + iounmap((void*)external_vgaiobase); + external_vgaiobase = 0; + } +#endif return -EINVAL; + } printk("Determined %dx%d, depth %d\n", disp.var.xres, disp.var.yres, disp.var.bits_per_pixel); _