Commit a7960784 authored by Jingoo Han's avatar Jingoo Han Committed by Wim Van Sebroeck

watchdog: at32ap700x_wdt: use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.
Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
Acked-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarWim Van Sebroeck <wim@iguana.be>
parent 6d128e1e
...@@ -321,13 +321,14 @@ static int __init at32_wdt_probe(struct platform_device *pdev) ...@@ -321,13 +321,14 @@ static int __init at32_wdt_probe(struct platform_device *pdev)
return -ENXIO; return -ENXIO;
} }
wdt = kzalloc(sizeof(struct wdt_at32ap700x), GFP_KERNEL); wdt = devm_kzalloc(&pdev->dev, sizeof(struct wdt_at32ap700x),
GFP_KERNEL);
if (!wdt) { if (!wdt) {
dev_dbg(&pdev->dev, "no memory for wdt structure\n"); dev_dbg(&pdev->dev, "no memory for wdt structure\n");
return -ENOMEM; return -ENOMEM;
} }
wdt->regs = ioremap(regs->start, resource_size(regs)); wdt->regs = devm_ioremap(&pdev->dev, regs->start, resource_size(regs));
if (!wdt->regs) { if (!wdt->regs) {
ret = -ENOMEM; ret = -ENOMEM;
dev_dbg(&pdev->dev, "could not map I/O memory\n"); dev_dbg(&pdev->dev, "could not map I/O memory\n");
...@@ -342,7 +343,7 @@ static int __init at32_wdt_probe(struct platform_device *pdev) ...@@ -342,7 +343,7 @@ static int __init at32_wdt_probe(struct platform_device *pdev)
dev_info(&pdev->dev, "CPU must be reset with external " dev_info(&pdev->dev, "CPU must be reset with external "
"reset or POR due to silicon errata.\n"); "reset or POR due to silicon errata.\n");
ret = -EIO; ret = -EIO;
goto err_iounmap; goto err_free;
} else { } else {
wdt->users = 0; wdt->users = 0;
} }
...@@ -375,10 +376,7 @@ static int __init at32_wdt_probe(struct platform_device *pdev) ...@@ -375,10 +376,7 @@ static int __init at32_wdt_probe(struct platform_device *pdev)
err_register: err_register:
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
err_iounmap:
iounmap(wdt->regs);
err_free: err_free:
kfree(wdt);
wdt = NULL; wdt = NULL;
return ret; return ret;
} }
...@@ -391,8 +389,6 @@ static int __exit at32_wdt_remove(struct platform_device *pdev) ...@@ -391,8 +389,6 @@ static int __exit at32_wdt_remove(struct platform_device *pdev)
at32_wdt_stop(); at32_wdt_stop();
misc_deregister(&wdt->miscdev); misc_deregister(&wdt->miscdev);
iounmap(wdt->regs);
kfree(wdt);
wdt = NULL; wdt = NULL;
platform_set_drvdata(pdev, NULL); platform_set_drvdata(pdev, NULL);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment