Messages in this thread Patch in this message | | | Date | Wed, 7 May 2014 10:16:38 +0530 | From | Himangi Saraogi <> | Subject | [PATCH] Input: 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 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> --- drivers/input/misc/pcf50633-input.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/input/misc/pcf50633-input.c b/drivers/input/misc/pcf50633-input.c index db92f4f..15ae3ad 100644 --- a/drivers/input/misc/pcf50633-input.c +++ b/drivers/input/misc/pcf50633-input.c @@ -58,16 +58,13 @@ static int pcf50633_input_probe(struct platform_device *pdev) struct input_dev *input_dev; int ret; - - input = kzalloc(sizeof(*input), GFP_KERNEL); + input = devm_kzalloc(&pdev->dev, sizeof(*input), GFP_KERNEL); if (!input) return -ENOMEM; input_dev = input_allocate_device(); - if (!input_dev) { - kfree(input); + if (!input_dev) return -ENOMEM; - } platform_set_drvdata(pdev, input); input->pcf = dev_to_pcf50633(pdev->dev.parent); @@ -81,7 +78,6 @@ static int pcf50633_input_probe(struct platform_device *pdev) ret = input_register_device(input_dev); if (ret) { input_free_device(input_dev); - kfree(input); return ret; } pcf50633_register_irq(input->pcf, PCF50633_IRQ_ONKEYR, @@ -100,7 +96,6 @@ static int pcf50633_input_remove(struct platform_device *pdev) pcf50633_free_irq(input->pcf, PCF50633_IRQ_ONKEYF); input_unregister_device(input->input_dev); - kfree(input); return 0; } -- 1.9.1
| |