From: Amol Lad Date: Fri, 8 Dec 2006 10:40:16 +0000 (-0800) Subject: [PATCH] ioremap balanced with iounmap for drivers/video/amifb X-Git-Tag: v2.6.20-rc1~34^2~98 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57354c42f177a2b58fb1f61125ad2cb2e8743a9b;p=linux-2.6 [PATCH] ioremap balanced with iounmap for drivers/video/amifb 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 Signed-off-by: Linus Torvalds --- diff --git a/drivers/video/amifb.c b/drivers/video/amifb.c index a4e3fca058..88a47845c4 100644 --- a/drivers/video/amifb.c +++ b/drivers/video/amifb.c @@ -2407,10 +2407,10 @@ default_chipset: fb_info.fix.smem_len); if (!videomemory) { printk("amifb: WARNING! unable to map videomem cached writethrough\n"); - videomemory = ZTWO_VADDR(fb_info.fix.smem_start); - } + fb_info.screen_base = (char *)ZTWO_VADDR(fb_info.fix.smem_start); + } else + fb_info.screen_base = (char *)videomemory; - fb_info.screen_base = (char *)videomemory; memset(dummysprite, 0, DUMMYSPRITEMEMSIZE); /* @@ -2453,6 +2453,8 @@ static void amifb_deinit(void) { fb_dealloc_cmap(&fb_info.cmap); chipfree(); + if (videomemory) + iounmap((void*)videomemory); release_mem_region(CUSTOM_PHYSADDR+0xe0, 0x120); custom.dmacon = DMAF_ALL | DMAF_MASTER; }