2014-07-01 21:19:17

by Himangi Saraogi

[permalink] [raw]
Subject: [PATCH v2] iio:trigger: Introduce the use of devm_kzalloc

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 <[email protected]>
---
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;
}
--
1.9.1


2014-07-07 12:32:50

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [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 <[email protected]>
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;
> }
>

2014-07-07 12:37:41

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH v2] iio:trigger: Introduce the use of devm_kzalloc

On 07/07/2014 02:34 PM, Jonathan Cameron wrote:
> 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 <[email protected]>
> Looks sane, but I'd like an ack or reviewed-by from someone as Analog for
> this one.
> cc'd Lars and Michael.

Acked-by: Lars-Peter Clausen <[email protected]>

Thanks.

2014-07-07 12:52:10

by Julia Lawall

[permalink] [raw]
Subject: Re: [PATCH v2] iio:trigger: Introduce the use of devm_kzalloc

On Mon, 7 Jul 2014, Jonathan Cameron wrote:

> 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 <[email protected]>
> Looks sane, but I'd like an ack or reviewed-by from someone as Analog for this
> one.
> cc'd Lars and Michael.

Should MAINTAINERS be updated somehow?

julia

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

2014-07-07 12:55:19

by Lars-Peter Clausen

[permalink] [raw]
Subject: Re: [PATCH v2] iio:trigger: Introduce the use of devm_kzalloc

On 07/07/2014 02:52 PM, Julia Lawall wrote:
> On Mon, 7 Jul 2014, Jonathan Cameron wrote:
>
>> 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 <[email protected]>
>> Looks sane, but I'd like an ack or reviewed-by from someone as Analog for this
>> one.
>> cc'd Lars and Michael.
>
> Should MAINTAINERS be updated somehow?
>
> julia

yea, it's been on my todo list for a while.

2014-07-07 16:21:12

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v2] iio:trigger: Introduce the use of devm_kzalloc

On 07/07/14 13:37, Lars-Peter Clausen wrote:
> On 07/07/2014 02:34 PM, Jonathan Cameron wrote:
>> 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 <[email protected]>
>> Looks sane, but I'd like an ack or reviewed-by from someone as Analog for
>> this one.
>> cc'd Lars and Michael.
>
> Acked-by: Lars-Peter Clausen <[email protected]>
Applied to the togreg branch of iio.git

Thanks,

Jonathan
>
> Thanks.
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html