mtd: docg3: Use devm_*() functions
Use devm_*() functions to make cleanup paths simpler. Signed-off-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
This commit is contained in:
parent
30b2afc847
commit
82402aeb8c
@ -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 @@ err_probe:
|
|||||||
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)
|
|||||||
{
|
{
|
||||||
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)
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user