diff options
author | Amol Lad <amol@verismonetworks.com> | 2006-12-08 05:40:09 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-08 11:29:04 -0500 |
commit | 164a765b9895f4f80f91cb7f1aab7539b3f8d335 (patch) | |
tree | 3bf84420e5dbce010f93f675995f5d23924dc5d8 /drivers/video/macfb.c | |
parent | f190017b889c45364576396a3bfa32acbb16bf2b (diff) |
[PATCH] ioremap balanced with iounmap for drivers/video/macfb
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>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/video/macfb.c')
-rw-r--r-- | drivers/video/macfb.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/video/macfb.c b/drivers/video/macfb.c index 80a043807161..180d94c2b4d2 100644 --- a/drivers/video/macfb.c +++ b/drivers/video/macfb.c | |||
@@ -608,6 +608,22 @@ void __init macfb_setup(char *options) | |||
608 | } | 608 | } |
609 | } | 609 | } |
610 | 610 | ||
611 | static void __init iounmap_macfb(void) | ||
612 | { | ||
613 | if (valkyrie_cmap_regs) | ||
614 | iounmap(valkyrie_cmap_regs); | ||
615 | if (dafb_cmap_regs) | ||
616 | iounmap(dafb_cmap_regs); | ||
617 | if (v8_brazil_cmap_regs) | ||
618 | iounmap(v8_brazil_cmap_regs); | ||
619 | if (rbv_cmap_regs) | ||
620 | iounmap(rbv_cmap_regs); | ||
621 | if (civic_cmap_regs) | ||
622 | iounmap(civic_cmap_regs); | ||
623 | if (csc_cmap_regs) | ||
624 | iounmap(csc_cmap_regs); | ||
625 | } | ||
626 | |||
611 | static int __init macfb_init(void) | 627 | static int __init macfb_init(void) |
612 | { | 628 | { |
613 | int video_cmap_len, video_is_nubus = 0; | 629 | int video_cmap_len, video_is_nubus = 0; |
@@ -962,6 +978,10 @@ static int __init macfb_init(void) | |||
962 | if (!err) | 978 | if (!err) |
963 | printk("fb%d: %s frame buffer device\n", | 979 | printk("fb%d: %s frame buffer device\n", |
964 | fb_info.node, fb_info.fix.id); | 980 | fb_info.node, fb_info.fix.id); |
981 | else { | ||
982 | iounmap(fb_info.screen_base); | ||
983 | iounmap_macfb(); | ||
984 | } | ||
965 | return err; | 985 | return err; |
966 | } | 986 | } |
967 | 987 | ||