48e43b3e89
of_irq_get() may return any negative error number as well as 0 on failure,
while the driver only checks for -EPROBE_DEFER, blithely continuing with
the call to gpiochip_set_chained_irqchip() -- that function expects the
parent IRQ as *unsigned int*, so would probably do nothing when a large
IRQ number resulting from a conversion of a negative error number is passed
to it, however passing 0 would probably work but the driver won't receive
valid GPIO bank interrupts.
Check for 'ret <= 0' instead and return -ENXIO from the driver's probe iff
of_irq_get() returned 0.
Fixes:
|
||
---|---|---|
.. | ||
Makefile | ||
pinctrl-atlas6.c | ||
pinctrl-atlas7.c | ||
pinctrl-prima2.c | ||
pinctrl-sirf.c | ||
pinctrl-sirf.h |