[PATCH 1/6] drivers/thermal/rcar_thermal.c: drop frees of devm allocated data

From: Julia Lawall
Date: Sat Aug 04 2012 - 12:51:55 EST


From: Julia Lawall <Julia.Lawall@xxxxxxx>

devm_kfree and devm_iounmap should not have to be explicitly used.

The semantic patch that fixes one of these problems is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
expression x,d;
@@

x = devm_kzalloc(...)
...
?-devm_kfree(d,x);
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx>

---
drivers/thermal/rcar_thermal.c | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c
index 2496b4f..9edbe04 100644
--- a/drivers/thermal/rcar_thermal.c
+++ b/drivers/thermal/rcar_thermal.c
@@ -206,16 +206,14 @@ static int rcar_thermal_probe(struct platform_device *pdev)
res->start, resource_size(res));
if (!priv->base) {
dev_err(&pdev->dev, "Unable to ioremap thermal register\n");
- ret = -ENOMEM;
- goto error_free_priv;
+ return -ENOMEM;
}

zone = thermal_zone_device_register("rcar_thermal", 0, priv,
&rcar_thermal_zone_ops, 0, 0, 0, 0);
if (IS_ERR(zone)) {
dev_err(&pdev->dev, "thermal zone device is NULL\n");
- ret = PTR_ERR(zone);
- goto error_iounmap;
+ return PTR_ERR(zone);
}

platform_set_drvdata(pdev, zone);
@@ -223,13 +221,6 @@ static int rcar_thermal_probe(struct platform_device *pdev)
dev_info(&pdev->dev, "proved\n");

return 0;
-
-error_iounmap:
- devm_iounmap(&pdev->dev, priv->base);
-error_free_priv:
- devm_kfree(&pdev->dev, priv);
-
- return ret;
}

static int rcar_thermal_remove(struct platform_device *pdev)
@@ -240,9 +231,6 @@ static int rcar_thermal_remove(struct platform_device *pdev)
thermal_zone_device_unregister(zone);
platform_set_drvdata(pdev, NULL);

- devm_iounmap(&pdev->dev, priv->base);
- devm_kfree(&pdev->dev, priv);
-
return 0;
}


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/