Skip to content

Commit

Permalink
[PATCH] ioremap balanced with iounmap for drivers/video/cirrusfb
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Amol Lad authored and Linus Torvalds committed Dec 8, 2006
1 parent d02abed commit d8b8c0a
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions drivers/video/cirrusfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -2442,7 +2442,10 @@ static int cirrusfb_pci_register (struct pci_dev *pdev,
printk ("Cirrus Logic chipset on PCI bus\n");
pci_set_drvdata(pdev, info);

return cirrusfb_register(cinfo);
ret = cirrusfb_register(cinfo);
if (ret)
iounmap(cinfo->fbmem);
return ret;

err_release_legacy:
if (release_io_ports)
Expand Down Expand Up @@ -2574,7 +2577,15 @@ static int cirrusfb_zorro_register(struct zorro_dev *z,
printk (KERN_INFO "Cirrus Logic chipset on Zorro bus\n");
zorro_set_drvdata(z, info);

return cirrusfb_register(cinfo);
ret = cirrusfb_register(cinfo);
if (ret) {
if (btype == BT_PICASSO4) {
iounmap(cinfo->fbmem);
iounmap(cinfo->regbase - 0x600000);
} else if (board_addr > 0x01000000)
iounmap(cinfo->fbmem);
}
return ret;

err_unmap_regbase:
/* Parental advisory: explicit hack */
Expand Down

0 comments on commit d8b8c0a

Please sign in to comment.