powerpc: Introduce the use of the managed version of kzalloc
authorHimangi Saraogi <himangi774@gmail.com>
Mon, 26 May 2014 20:21:31 +0000 (01:51 +0530)
committerAnatolij Gustschin <agust@denx.de>
Thu, 22 Oct 2015 14:13:23 +0000 (16:13 +0200)
This patch moves data allocated using kzalloc to managed data allocated
using devm_kzalloc and cleans now unnecessary kfree in probe function.

The following Coccinelle semantic patch was used for making the change:

@platform@
identifier p, probefn, removefn;
@@
struct platform_driver p = {
  .probe = probefn,
  .remove = removefn,
};

@prb@
identifier platform.probefn, pdev;
expression e, e1, e2;
@@
probefn(struct platform_device *pdev, ...) {
  <+...
- e = kzalloc(e1, e2)
+ e = devm_kzalloc(&pdev->dev, e1, e2)
  ...
?-kfree(e);
  ...+>
}

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
arch/powerpc/platforms/52xx/mpc52xx_gpt.c

index 78ac19a..3048e34 100644 (file)
@@ -724,7 +724,7 @@ static int mpc52xx_gpt_probe(struct platform_device *ofdev)
 {
        struct mpc52xx_gpt_priv *gpt;
 
-       gpt = kzalloc(sizeof *gpt, GFP_KERNEL);
+       gpt = devm_kzalloc(&ofdev->dev, sizeof *gpt, GFP_KERNEL);
        if (!gpt)
                return -ENOMEM;
 
@@ -732,10 +732,8 @@ static int mpc52xx_gpt_probe(struct platform_device *ofdev)
        gpt->dev = &ofdev->dev;
        gpt->ipb_freq = mpc5xxx_get_bus_frequency(ofdev->dev.of_node);
        gpt->regs = of_iomap(ofdev->dev.of_node, 0);
-       if (!gpt->regs) {
-               kfree(gpt);
+       if (!gpt->regs)
                return -ENOMEM;
-       }
 
        dev_set_drvdata(&ofdev->dev, gpt);