MIPS: Introduce the use of the managed version of kzalloc
PATCH 1/1 MIPS: Introduce the use of the managed version of kzalloc
This patch moves data allocated using kzalloc to managed data allocated using devm_kzalloc and cleans now unnecessary kfrees in probe and remove functions.The labels out and out_mem are also removed as they are no longer required.
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);
...+>
}
@rem depends on prb@
identifier platform.removefn;
expression e;
@@
removefn(...) {
<...
- kfree(e);
...>
}
--- arch/mips/mti-sead3/sead3-i2c-drv.c | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-)
arch/mips/mti-sead3/sead3-i2c-drv.c +14 -23
@@ -304,22 +304,18 @@ static int sead3_i2c_platform_probe(struct platform_device *pdev)int ret; r =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); -if (!r) { - ret = -ENODEV ; - goto out; - } +if (!r) +return -ENODEV ; - priv =kzalloc (sizeof (struct pic32_i2c_platform_data ),GFP_KERNEL ); -if (!priv) { - ret = -ENOMEM ; - goto out; - } + priv =devm_kzalloc (&pdev->dev, +sizeof (struct pic32_i2c_platform_data ), +GFP_KERNEL ); +if (!priv) +return -ENOMEM ; priv->base = r->start; -if (!priv->base) { - ret = -EBUSY ; - goto out_mem; - } +if (!priv->base) +return -EBUSY ; priv->xfer_timeout =200 ; priv->ack_timeout =200 ;
@@ -334,15 +330,11 @@ static int sead3_i2c_platform_probe(struct platform_device *pdev)sead3_i2c_platform_setup (priv); ret =i2c_add_numbered_adapter (&priv->adap); -if (ret ==0 ) { -platform_set_drvdata (pdev, priv); -return 0 ; - } - -out_mem: -kfree (priv); -out: -return ret; +if (ret) +return ret; + +platform_set_drvdata (pdev, priv); +return 0 ; }static int sead3_i2c_platform_remove (struct platform_device *pdev)
@@ -351,7 +343,6 @@ static int sead3_i2c_platform_remove(struct platform_device *pdev)platform_set_drvdata (pdev,NULL );i2c_del_adapter (&priv->adap); -kfree (priv);return 0 ; }
Signature · 1 line
1.9.1
Hi,
Quoted 18 lines · Himangi Saraogi
This patch moves data allocated using kzalloc to managed data allocated using
devm_kzallocand cleans now unnecessary kfrees in probe and remove functions.The labels out andout_memare also removed as they are no longer required.The following Coccinelle semantic patch was used for making the change:
[..]Signed-off-by Himangi Saraogi <[email protected]>--- arch/mips/mti-sead3/sead3-i2c-drv.c | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-)arch/mips/mti-sead3/sead3-i2c-drv.c +0
-0
arch/mips/mti-sead3/sead3-i2c-drv.c static int sead3_i2c_platform_probe(struct platform_device *pdev) · line 335
Quoted 6 lines
arch/mips/mti-sead3/sead3-i2c-drv.c +3
-1@@ -304,22 +304,18 @@ static int sead3_i2c_platform_probe(struct platform_device *pdev)int ret; -return ret; +if (ret) +return ret; +
^^^^ trailing whitespace
Apart from that, the patch seems to be ok. Thanks!
Signature · 1 line
markos