lkml.org 
[lkml]   [2014]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2] iio:trigger: Introduce the use of devm_kzalloc
On 01/07/14 22:19, Himangi Saraogi wrote:
> This patch introduces the use of the managed version of kzalloc and
> removes the kfrees in the probe and remove functions. More return
> paths are added and the labels are renamed to order them.
>
> Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Looks sane, but I'd like an ack or reviewed-by from someone as Analog for this one.
cc'd Lars and Michael.

> ---
> v2: add more return paths
> Not compile tested.
> drivers/staging/iio/trigger/iio-trig-bfin-timer.c | 31 ++++++++---------------
> 1 file changed, 11 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
> index 16f1a06..a21b7c5 100644
> --- a/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
> +++ b/drivers/staging/iio/trigger/iio-trig-bfin-timer.c
> @@ -182,45 +182,40 @@ static int iio_bfin_tmr_trigger_probe(struct platform_device *pdev)
> unsigned int config;
> int ret;
>
> - st = kzalloc(sizeof(*st), GFP_KERNEL);
> - if (st == NULL) {
> - ret = -ENOMEM;
> - goto out;
> - }
> + st = devm_kzalloc(&pdev->dev, sizeof(*st), GFP_KERNEL);
> + if (st == NULL)
> + return -ENOMEM;
>
> st->irq = platform_get_irq(pdev, 0);
> if (!st->irq) {
> dev_err(&pdev->dev, "No IRQs specified");
> - ret = -ENODEV;
> - goto out1;
> + return -ENODEV;
> }
>
> ret = iio_bfin_tmr_get_number(st->irq);
> if (ret < 0)
> - goto out1;
> + return ret;
>
> st->timer_num = ret;
> st->t = &iio_bfin_timer_code[st->timer_num];
>
> st->trig = iio_trigger_alloc("bfintmr%d", st->timer_num);
> - if (!st->trig) {
> - ret = -ENOMEM;
> - goto out1;
> - }
> + if (!st->trig)
> + return -ENOMEM;
>
> st->trig->ops = &iio_bfin_tmr_trigger_ops;
> st->trig->dev.groups = iio_bfin_tmr_trigger_attr_groups;
> iio_trigger_set_drvdata(st->trig, st);
> ret = iio_trigger_register(st->trig);
> if (ret)
> - goto out2;
> + goto out;
>
> ret = request_irq(st->irq, iio_bfin_tmr_trigger_isr,
> 0, st->trig->name, st);
> if (ret) {
> dev_err(&pdev->dev,
> "request IRQ-%d failed", st->irq);
> - goto out4;
> + goto out1;
> }
>
> config = PWM_OUT | PERIOD_CNT | IRQ_ENA;
> @@ -260,13 +255,10 @@ static int iio_bfin_tmr_trigger_probe(struct platform_device *pdev)
> return 0;
> out_free_irq:
> free_irq(st->irq, st);
> -out4:
> - iio_trigger_unregister(st->trig);
> -out2:
> - iio_trigger_put(st->trig);
> out1:
> - kfree(st);
> + iio_trigger_unregister(st->trig);
> out:
> + iio_trigger_put(st->trig);
> return ret;
> }
>
> @@ -280,7 +272,6 @@ static int iio_bfin_tmr_trigger_remove(struct platform_device *pdev)
> free_irq(st->irq, st);
> iio_trigger_unregister(st->trig);
> iio_trigger_put(st->trig);
> - kfree(st);
>
> return 0;
> }
>



\
 
 \ /
  Last update: 2014-07-07 15:01    [W:0.897 / U:1.740 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site