On Friday 01 April 2016 10:47:42, Linus Walleij wrote: > On Fri, Apr 1, 2016 at 10:43 AM, Linus Walleij <linus.walleij@xxxxxxxxxx> wrote: > > I think the problem is that gpio-keys is calling gpio_to_irq(), and at > > that > > point between gpiochip_add_data() but before gpiochip_irqchip_add() > > it gets a bogus IRQ when it should be getting -EPROBE_DEFER. > > Or not a bogus irqnumber really, it get -ENXIO (-6) > > as in your example: > > gpio-keys user_sw: Unable to get irq number for GPIO 376, error -6 > > And in this case (if gpio_keys handle -EPROBE_DEFER gracefully) > all should be fine with my oneliner patch. > > I am more uncertain about the -EINVAL (-22) we might need some > more analysis there. I did 10 runs and got the following results: > 3x gpio-keys user_sw: Unable to claim irq 0; error -22 > 2x gpio-keys user_sw: Unable to get irq number for GPIO 376, error -517 > 5x ok So, for one gpio-keys seems not to handle -EPROBE_DEFER gracefully and it seem still possible to get an invalid irq number. Best regards, Alexander -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html