* [patch] iio: trigger: clean up viio_trigger_alloc()
@ 2017-01-21 4:55 Dan Carpenter
2017-01-22 13:34 ` Jonathan Cameron
0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2017-01-21 4:55 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler,
linux-iio, kernel-janitors
1) Reverse the test for kmalloc() failure so we can pull everything
back one tab.
2) Use gotos for unwinding.
3) Some of the extra line breaks for the 80 character limit are no
longer needed so we can remove them.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
index 978729f..372faef 100644
--- a/drivers/iio/industrialio-trigger.c
+++ b/drivers/iio/industrialio-trigger.c
@@ -513,46 +513,45 @@ static void iio_trig_subirqunmask(struct irq_data *d)
static struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
{
struct iio_trigger *trig;
+ int i;
+
trig = kzalloc(sizeof *trig, GFP_KERNEL);
- if (trig) {
- int i;
- trig->dev.type = &iio_trig_type;
- trig->dev.bus = &iio_bus_type;
- device_initialize(&trig->dev);
-
- mutex_init(&trig->pool_lock);
- trig->subirq_base
- = irq_alloc_descs(-1, 0,
- CONFIG_IIO_CONSUMERS_PER_TRIGGER,
- 0);
- if (trig->subirq_base < 0) {
- kfree(trig);
- return NULL;
- }
+ if (!trig)
+ return NULL;
- trig->name = kvasprintf(GFP_KERNEL, fmt, vargs);
- if (trig->name == NULL) {
- irq_free_descs(trig->subirq_base,
- CONFIG_IIO_CONSUMERS_PER_TRIGGER);
- kfree(trig);
- return NULL;
- }
- trig->subirq_chip.name = trig->name;
- trig->subirq_chip.irq_mask = &iio_trig_subirqmask;
- trig->subirq_chip.irq_unmask = &iio_trig_subirqunmask;
- for (i = 0; i < CONFIG_IIO_CONSUMERS_PER_TRIGGER; i++) {
- irq_set_chip(trig->subirq_base + i,
- &trig->subirq_chip);
- irq_set_handler(trig->subirq_base + i,
- &handle_simple_irq);
- irq_modify_status(trig->subirq_base + i,
- IRQ_NOREQUEST | IRQ_NOAUTOEN,
- IRQ_NOPROBE);
- }
- get_device(&trig->dev);
+ trig->dev.type = &iio_trig_type;
+ trig->dev.bus = &iio_bus_type;
+ device_initialize(&trig->dev);
+
+ mutex_init(&trig->pool_lock);
+ trig->subirq_base = irq_alloc_descs(-1, 0,
+ CONFIG_IIO_CONSUMERS_PER_TRIGGER,
+ 0);
+ if (trig->subirq_base < 0)
+ goto free_trig;
+
+ trig->name = kvasprintf(GFP_KERNEL, fmt, vargs);
+ if (trig->name == NULL)
+ goto free_descs;
+
+ trig->subirq_chip.name = trig->name;
+ trig->subirq_chip.irq_mask = &iio_trig_subirqmask;
+ trig->subirq_chip.irq_unmask = &iio_trig_subirqunmask;
+ for (i = 0; i < CONFIG_IIO_CONSUMERS_PER_TRIGGER; i++) {
+ irq_set_chip(trig->subirq_base + i, &trig->subirq_chip);
+ irq_set_handler(trig->subirq_base + i, &handle_simple_irq);
+ irq_modify_status(trig->subirq_base + i,
+ IRQ_NOREQUEST | IRQ_NOAUTOEN, IRQ_NOPROBE);
}
+ get_device(&trig->dev);
return trig;
+
+free_descs:
+ irq_free_descs(trig->subirq_base, CONFIG_IIO_CONSUMERS_PER_TRIGGER);
+free_trig:
+ kfree(trig);
+ return NULL;
}
struct iio_trigger *iio_trigger_alloc(const char *fmt, ...)
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [patch] iio: trigger: clean up viio_trigger_alloc()
2017-01-21 4:55 [patch] iio: trigger: clean up viio_trigger_alloc() Dan Carpenter
@ 2017-01-22 13:34 ` Jonathan Cameron
0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2017-01-22 13:34 UTC (permalink / raw)
To: Dan Carpenter
Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler,
linux-iio, kernel-janitors
On 21/01/17 04:55, Dan Carpenter wrote:
> 1) Reverse the test for kmalloc() failure so we can pull everything
> back one tab.
> 2) Use gotos for unwinding.
> 3) Some of the extra line breaks for the 80 character limit are no
> longer needed so we can remove them.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Ouch. Ugly indeed. Good little clean up. Thanks.
Applied ot the togreg branch of iio.git and pushed out as testing
for the autobuilders to play with it.
Thanks,
Jonathan
>
> diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
> index 978729f..372faef 100644
> --- a/drivers/iio/industrialio-trigger.c
> +++ b/drivers/iio/industrialio-trigger.c
> @@ -513,46 +513,45 @@ static void iio_trig_subirqunmask(struct irq_data *d)
> static struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> {
> struct iio_trigger *trig;
> + int i;
> +
> trig = kzalloc(sizeof *trig, GFP_KERNEL);
> - if (trig) {
> - int i;
> - trig->dev.type = &iio_trig_type;
> - trig->dev.bus = &iio_bus_type;
> - device_initialize(&trig->dev);
> -
> - mutex_init(&trig->pool_lock);
> - trig->subirq_base
> - = irq_alloc_descs(-1, 0,
> - CONFIG_IIO_CONSUMERS_PER_TRIGGER,
> - 0);
> - if (trig->subirq_base < 0) {
> - kfree(trig);
> - return NULL;
> - }
> + if (!trig)
> + return NULL;
>
> - trig->name = kvasprintf(GFP_KERNEL, fmt, vargs);
> - if (trig->name == NULL) {
> - irq_free_descs(trig->subirq_base,
> - CONFIG_IIO_CONSUMERS_PER_TRIGGER);
> - kfree(trig);
> - return NULL;
> - }
> - trig->subirq_chip.name = trig->name;
> - trig->subirq_chip.irq_mask = &iio_trig_subirqmask;
> - trig->subirq_chip.irq_unmask = &iio_trig_subirqunmask;
> - for (i = 0; i < CONFIG_IIO_CONSUMERS_PER_TRIGGER; i++) {
> - irq_set_chip(trig->subirq_base + i,
> - &trig->subirq_chip);
> - irq_set_handler(trig->subirq_base + i,
> - &handle_simple_irq);
> - irq_modify_status(trig->subirq_base + i,
> - IRQ_NOREQUEST | IRQ_NOAUTOEN,
> - IRQ_NOPROBE);
> - }
> - get_device(&trig->dev);
> + trig->dev.type = &iio_trig_type;
> + trig->dev.bus = &iio_bus_type;
> + device_initialize(&trig->dev);
> +
> + mutex_init(&trig->pool_lock);
> + trig->subirq_base = irq_alloc_descs(-1, 0,
> + CONFIG_IIO_CONSUMERS_PER_TRIGGER,
> + 0);
> + if (trig->subirq_base < 0)
> + goto free_trig;
> +
> + trig->name = kvasprintf(GFP_KERNEL, fmt, vargs);
> + if (trig->name == NULL)
> + goto free_descs;
> +
> + trig->subirq_chip.name = trig->name;
> + trig->subirq_chip.irq_mask = &iio_trig_subirqmask;
> + trig->subirq_chip.irq_unmask = &iio_trig_subirqunmask;
> + for (i = 0; i < CONFIG_IIO_CONSUMERS_PER_TRIGGER; i++) {
> + irq_set_chip(trig->subirq_base + i, &trig->subirq_chip);
> + irq_set_handler(trig->subirq_base + i, &handle_simple_irq);
> + irq_modify_status(trig->subirq_base + i,
> + IRQ_NOREQUEST | IRQ_NOAUTOEN, IRQ_NOPROBE);
> }
> + get_device(&trig->dev);
>
> return trig;
> +
> +free_descs:
> + irq_free_descs(trig->subirq_base, CONFIG_IIO_CONSUMERS_PER_TRIGGER);
> +free_trig:
> + kfree(trig);
> + return NULL;
> }
>
> struct iio_trigger *iio_trigger_alloc(const char *fmt, ...)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-01-22 13:34 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-21 4:55 [patch] iio: trigger: clean up viio_trigger_alloc() Dan Carpenter
2017-01-22 13:34 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).