Commit 82402aeb authored by Jingoo Han's avatar Jingoo Han Committed by Brian Norris

mtd: docg3: Use devm_*() functions

Use devm_*() functions to make cleanup paths simpler.
Signed-off-by: default avatarJingoo Han <jg1.han@samsung.com>
Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
parent 30b2afc8
...@@ -2047,21 +2047,21 @@ static int __init docg3_probe(struct platform_device *pdev) ...@@ -2047,21 +2047,21 @@ static int __init docg3_probe(struct platform_device *pdev)
ress = platform_get_resource(pdev, IORESOURCE_MEM, 0); ress = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!ress) { if (!ress) {
dev_err(dev, "No I/O memory resource defined\n"); dev_err(dev, "No I/O memory resource defined\n");
goto noress; return ret;
} }
base = ioremap(ress->start, DOC_IOSPACE_SIZE); base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE);
ret = -ENOMEM; ret = -ENOMEM;
cascade = kzalloc(sizeof(*cascade) * DOC_MAX_NBFLOORS, cascade = devm_kzalloc(dev, sizeof(*cascade) * DOC_MAX_NBFLOORS,
GFP_KERNEL); GFP_KERNEL);
if (!cascade) if (!cascade)
goto nomem1; return ret;
cascade->base = base; cascade->base = base;
mutex_init(&cascade->lock); mutex_init(&cascade->lock);
cascade->bch = init_bch(DOC_ECC_BCH_M, DOC_ECC_BCH_T, cascade->bch = init_bch(DOC_ECC_BCH_M, DOC_ECC_BCH_T,
DOC_ECC_BCH_PRIMPOLY); DOC_ECC_BCH_PRIMPOLY);
if (!cascade->bch) if (!cascade->bch)
goto nomem2; return ret;
for (floor = 0; floor < DOC_MAX_NBFLOORS; floor++) { for (floor = 0; floor < DOC_MAX_NBFLOORS; floor++) {
mtd = doc_probe_device(cascade, floor, dev); mtd = doc_probe_device(cascade, floor, dev);
...@@ -2101,11 +2101,6 @@ static int __init docg3_probe(struct platform_device *pdev) ...@@ -2101,11 +2101,6 @@ static int __init docg3_probe(struct platform_device *pdev)
for (floor = 0; floor < DOC_MAX_NBFLOORS; floor++) for (floor = 0; floor < DOC_MAX_NBFLOORS; floor++)
if (cascade->floors[floor]) if (cascade->floors[floor])
doc_release_device(cascade->floors[floor]); doc_release_device(cascade->floors[floor]);
nomem2:
kfree(cascade);
nomem1:
iounmap(base);
noress:
return ret; return ret;
} }
...@@ -2119,7 +2114,6 @@ static int __exit docg3_release(struct platform_device *pdev) ...@@ -2119,7 +2114,6 @@ static int __exit docg3_release(struct platform_device *pdev)
{ {
struct docg3_cascade *cascade = platform_get_drvdata(pdev); struct docg3_cascade *cascade = platform_get_drvdata(pdev);
struct docg3 *docg3 = cascade->floors[0]->priv; struct docg3 *docg3 = cascade->floors[0]->priv;
void __iomem *base = cascade->base;
int floor; int floor;
doc_unregister_sysfs(pdev, cascade); doc_unregister_sysfs(pdev, cascade);
...@@ -2129,8 +2123,6 @@ static int __exit docg3_release(struct platform_device *pdev) ...@@ -2129,8 +2123,6 @@ static int __exit docg3_release(struct platform_device *pdev)
doc_release_device(cascade->floors[floor]); doc_release_device(cascade->floors[floor]);
free_bch(docg3->cascade->bch); free_bch(docg3->cascade->bch);
kfree(cascade);
iounmap(base);
return 0; return 0;
} }
......
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