提交 57354c42 编写于 作者: A Amol Lad 提交者: Linus Torvalds

[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: NAmol Lad <amol@verismonetworks.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 6792951b
...@@ -2407,10 +2407,10 @@ int __init amifb_init(void) ...@@ -2407,10 +2407,10 @@ int __init amifb_init(void)
fb_info.fix.smem_len); fb_info.fix.smem_len);
if (!videomemory) { if (!videomemory) {
printk("amifb: WARNING! unable to map videomem cached writethrough\n"); 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); memset(dummysprite, 0, DUMMYSPRITEMEMSIZE);
/* /*
...@@ -2453,6 +2453,8 @@ static void amifb_deinit(void) ...@@ -2453,6 +2453,8 @@ static void amifb_deinit(void)
{ {
fb_dealloc_cmap(&fb_info.cmap); fb_dealloc_cmap(&fb_info.cmap);
chipfree(); chipfree();
if (videomemory)
iounmap((void*)videomemory);
release_mem_region(CUSTOM_PHYSADDR+0xe0, 0x120); release_mem_region(CUSTOM_PHYSADDR+0xe0, 0x120);
custom.dmacon = DMAF_ALL | DMAF_MASTER; custom.dmacon = DMAF_ALL | DMAF_MASTER;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册