Hello Grygorii Strashko,
The patch 1562e4618ded: "gpio: omap: fix error handling in
omap_gpio_irq_type" from May 22, 2015, leads to the following static
checker warning:
drivers/gpio/gpio-omap.c:523 omap_gpio_irq_type()
warn: inconsistent returns 'spin_lock:&bank->lock'.
drivers/gpio/gpio-omap.c
Locked on: line 523
Unlocked on: line 492
line 496
line 518
line 523
501 spin_lock_irqsave(&bank->lock, flags);
502 retval = omap_set_gpio_triggering(bank, offset, type);
503 if (retval)
Missing spin_unlock_irqrestore() before goto.
504 goto error;
505 omap_gpio_init_irq(bank, offset);
506 if (!omap_gpio_is_input(bank, offset)) {
507 spin_unlock_irqrestore(&bank->lock, flags);
508 retval = -EINVAL;
509 goto error;
510 }
511 spin_unlock_irqrestore(&bank->lock, flags);
512
513 if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH))
514 __irq_set_handler_locked(d->irq, handle_level_irq);
515 else if (type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
516 __irq_set_handler_locked(d->irq, handle_edge_irq);
517
518 return 0;
519
520 error:
521 if (!BANK_USED(bank))
522 pm_runtime_put(bank->dev);
523 return retval;
524 }
Also:
drivers/gpio/gpio-omap.c:725 omap_gpio_irq_handler()
what if bank->base is NULL but bank->regs->irqstatus is
non-zero?
drivers/gpio/gpio-omap.c:1176 omap_gpio_probe() comma vs semicolon
drivers/gpio/gpio-omap.c:1175 omap_gpio_probe() comma vs semicolon
drivers/gpio/gpio-omap.c:1174 omap_gpio_probe() comma vs semicolon
drivers/gpio/gpio-omap.c:1173 omap_gpio_probe() comma vs semicolon
drivers/gpio/gpio-omap.c:1172 omap_gpio_probe() comma vs semicolon
drivers/gpio/gpio-omap.c:1171 omap_gpio_probe() comma vs semicolon
drivers/gpio/gpio-omap.c:1170 omap_gpio_probe() comma vs semicolon
regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html