Skip to content

Commit

Permalink
usb: musb: backfin: Introduce the use of the managed version of kzalloc
Browse files Browse the repository at this point in the history
This patch moves data allocated using kzalloc to managed data allocated
using devm_kzalloc and cleans now unnecessary kfrees in probe and remove
functions. Also, a label is done away with and err2 and err3 renamed.

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);
  ...>
}

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Felipe Balbi <balbi@ti.com>
  • Loading branch information
Himangi Saraogi authored and Felipe Balbi committed Jun 30, 2014
1 parent cdfe35f commit f875bf3
Showing 1 changed file with 8 additions and 12 deletions.
20 changes: 8 additions & 12 deletions drivers/usb/musb/blackfin.c
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@ static int bfin_probe(struct platform_device *pdev)

int ret = -ENOMEM;

glue = kzalloc(sizeof(*glue), GFP_KERNEL);
glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
if (!glue) {
dev_err(&pdev->dev, "failed to allocate glue context\n");
goto err0;
Expand All @@ -464,7 +464,7 @@ static int bfin_probe(struct platform_device *pdev)
musb = platform_device_alloc("musb-hdrc", PLATFORM_DEVID_AUTO);
if (!musb) {
dev_err(&pdev->dev, "failed to allocate musb device\n");
goto err1;
goto err0;
}

musb->dev.parent = &pdev->dev;
Expand All @@ -478,7 +478,7 @@ static int bfin_probe(struct platform_device *pdev)

glue->phy = usb_phy_generic_register();
if (IS_ERR(glue->phy))
goto err2;
goto err1;
platform_set_drvdata(pdev, glue);

memset(musb_resources, 0x00, sizeof(*musb_resources) *
Expand All @@ -498,31 +498,28 @@ static int bfin_probe(struct platform_device *pdev)
ARRAY_SIZE(musb_resources));
if (ret) {
dev_err(&pdev->dev, "failed to add resources\n");
goto err3;
goto err2;
}

ret = platform_device_add_data(musb, pdata, sizeof(*pdata));
if (ret) {
dev_err(&pdev->dev, "failed to add platform_data\n");
goto err3;
goto err2;
}

ret = platform_device_add(musb);
if (ret) {
dev_err(&pdev->dev, "failed to register musb device\n");
goto err3;
goto err2;
}

return 0;

err3:
usb_phy_generic_unregister(glue->phy);

err2:
platform_device_put(musb);
usb_phy_generic_unregister(glue->phy);

err1:
kfree(glue);
platform_device_put(musb);

err0:
return ret;
Expand All @@ -534,7 +531,6 @@ static int bfin_remove(struct platform_device *pdev)

platform_device_unregister(glue->musb);
usb_phy_generic_unregister(glue->phy);
kfree(glue);

return 0;
}
Expand Down

0 comments on commit f875bf3

Please sign in to comment.