Skip to content

Commit

Permalink
[WATCHDOG] ioremap balanced with iounmap for drivers/char/watchdog/s3…
Browse files Browse the repository at this point in the history
…c2410_wdt.c

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>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@osdl.org>
  • Loading branch information
Amol Lad authored and Wim Van Sebroeck committed Oct 7, 2006
1 parent ff02cfc commit e34477e
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/char/watchdog/s3c2410_wdt.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,18 +381,21 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
if (res == NULL) {
printk(KERN_INFO PFX "failed to get irq resource\n");
iounmap(wdt_base);
return -ENOENT;
}

ret = request_irq(res->start, s3c2410wdt_irq, 0, pdev->name, pdev);
if (ret != 0) {
printk(KERN_INFO PFX "failed to install irq (%d)\n", ret);
iounmap(wdt_base);
return ret;
}

wdt_clock = clk_get(&pdev->dev, "watchdog");
if (wdt_clock == NULL) {
printk(KERN_INFO PFX "failed to find watchdog clock source\n");
iounmap(wdt_base);
return -ENOENT;
}

Expand All @@ -416,6 +419,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
if (ret) {
printk (KERN_ERR PFX "cannot register miscdev on minor=%d (%d)\n",
WATCHDOG_MINOR, ret);
iounmap(wdt_base);
return ret;
}

Expand Down Expand Up @@ -452,6 +456,7 @@ static int s3c2410wdt_remove(struct platform_device *dev)
wdt_clock = NULL;
}

iounmap(wdt_base);
misc_deregister(&s3c2410wdt_miscdev);
return 0;
}
Expand Down

0 comments on commit e34477e

Please sign in to comment.