Re: gpio irqchip initialization race

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux