diff mbox

[3/8] mtd: lantiq-flash: Use devm_kzalloc()

Message ID 001201cefd40$2db34260$8919c720$%han@samsung.com
State New, archived
Headers show

Commit Message

Jingoo Han Dec. 20, 2013, 4:58 a.m. UTC
Use devm_kzalloc() to make cleanup paths simpler.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/mtd/maps/lantiq-flash.c |   17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

Comments

John Crispin Dec. 20, 2013, 6:03 a.m. UTC | #1
On 20/12/13 05:58, Jingoo Han wrote:
>   err_destroy:
>   	map_destroy(ltq_mtd->mtd);
>   err_free:
> -	kfree(ltq_mtd->map);
>   err_out:
> -	kfree(ltq_mtd);
>   	return err;
>   }

Hi,

after the cleanup only err_destroy is needed. the other 2 jump marks can 
be removed aswell.

     John
Jingoo Han Dec. 20, 2013, 7:14 a.m. UTC | #2
On Friday, December 20, 2013 3:04 PM, John Crispin wrote:
> On 20/12/13 05:58, Jingoo Han wrote:
> >   err_destroy:
> >   	map_destroy(ltq_mtd->mtd);
> >   err_free:
> > -	kfree(ltq_mtd->map);
> >   err_out:
> > -	kfree(ltq_mtd);
> >   	return err;
> >   }
> 
> Hi,
> 
> after the cleanup only err_destroy is needed. the other 2 jump marks can
> be removed aswell.

Hi John Crispin,

I see. You're right.
I will remove unnecessary goto labels such as err_free, err_out.
Thank you for your comment. :-)

Best regards,
Jingoo Han
diff mbox

Patch

diff --git a/drivers/mtd/maps/lantiq-flash.c b/drivers/mtd/maps/lantiq-flash.c
index d7ac65d..4b197c6 100644
--- a/drivers/mtd/maps/lantiq-flash.c
+++ b/drivers/mtd/maps/lantiq-flash.c
@@ -123,7 +123,7 @@  ltq_mtd_probe(struct platform_device *pdev)
 		return -ENODEV;
 	}
 
-	ltq_mtd = kzalloc(sizeof(struct ltq_mtd), GFP_KERNEL);
+	ltq_mtd = devm_kzalloc(&pdev->dev, sizeof(struct ltq_mtd), GFP_KERNEL);
 	platform_set_drvdata(pdev, ltq_mtd);
 
 	ltq_mtd->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -133,7 +133,8 @@  ltq_mtd_probe(struct platform_device *pdev)
 		goto err_out;
 	}
 
-	ltq_mtd->map = kzalloc(sizeof(struct map_info), GFP_KERNEL);
+	ltq_mtd->map = devm_kzalloc(&pdev->dev, sizeof(struct map_info),
+				    GFP_KERNEL);
 	ltq_mtd->map->phys = ltq_mtd->res->start;
 	ltq_mtd->map->size = resource_size(ltq_mtd->res);
 	ltq_mtd->map->virt = devm_ioremap_resource(&pdev->dev, ltq_mtd->res);
@@ -178,9 +179,7 @@  ltq_mtd_probe(struct platform_device *pdev)
 err_destroy:
 	map_destroy(ltq_mtd->mtd);
 err_free:
-	kfree(ltq_mtd->map);
 err_out:
-	kfree(ltq_mtd);
 	return err;
 }
 
@@ -189,13 +188,9 @@  ltq_mtd_remove(struct platform_device *pdev)
 {
 	struct ltq_mtd *ltq_mtd = platform_get_drvdata(pdev);
 
-	if (ltq_mtd) {
-		if (ltq_mtd->mtd) {
-			mtd_device_unregister(ltq_mtd->mtd);
-			map_destroy(ltq_mtd->mtd);
-		}
-		kfree(ltq_mtd->map);
-		kfree(ltq_mtd);
+	if (ltq_mtd && ltq_mtd->mtd) {
+		mtd_device_unregister(ltq_mtd->mtd);
+		map_destroy(ltq_mtd->mtd);
 	}
 	return 0;
 }