On Fri, Sep 14, 2018 at 10:37 AM Hans Verkuil <hverkuil@xxxxxxxxx> wrote: > Some drivers use a single irqchip for multiple gpiochips. As a result the > irqchip hooks are overridden for the first gpiochip that was added, but > for the other gpiochip instances this should not happen again, otherwise > we would go into an infinite recursion. > > Check for this, but also log a message that the driver should be fixed > since this is bad practice. > > Signed-off-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> Looks like there may still be several drivers that would trigger this. On next-20190121: git grep -l "static struct irq_chip" -- $(git grep -l gpiochip_irqchip_add) drivers/bcma/driver_gpio.c drivers/gpio/gpio-104-dio-48e.c drivers/gpio/gpio-104-idi-48.c drivers/gpio/gpio-104-idio-16.c drivers/gpio/gpio-adnp.c drivers/gpio/gpio-altera.c drivers/gpio/gpio-aspeed.c drivers/gpio/gpio-ath79.c drivers/gpio/gpio-cadence.c drivers/gpio/gpio-crystalcove.c drivers/gpio/gpio-dln2.c drivers/gpio/gpio-ep93xx.c drivers/gpio/gpio-ftgpio010.c drivers/gpio/gpio-intel-mid.c drivers/gpio/gpio-lynxpoint.c drivers/gpio/gpio-max732x.c drivers/gpio/gpio-merrifield.c drivers/gpio/gpio-mt7621.c drivers/gpio/gpio-pca953x.c drivers/gpio/gpio-pcf857x.c drivers/gpio/gpio-pci-idio-16.c drivers/gpio/gpio-pcie-idio-24.c drivers/gpio/gpio-stmpe.c drivers/gpio/gpio-tc3589x.c drivers/gpio/gpio-vf610.c drivers/gpio/gpio-wcove.c drivers/gpio/gpio-ws16c48.c drivers/gpio/gpio-xlp.c drivers/gpio/gpio-zx.c drivers/gpio/gpio-zynq.c drivers/hid/hid-cp2112.c drivers/pinctrl/bcm/pinctrl-bcm2835.c drivers/pinctrl/bcm/pinctrl-iproc-gpio.c drivers/pinctrl/intel/pinctrl-baytrail.c drivers/pinctrl/intel/pinctrl-cherryview.c drivers/pinctrl/intel/pinctrl-intel.c drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c drivers/pinctrl/pinctrl-amd.c drivers/pinctrl/pinctrl-coh901.c drivers/pinctrl/pinctrl-mcp23s08.c drivers/pinctrl/pinctrl-ocelot.c drivers/pinctrl/pinctrl-st.c drivers/pinctrl/sirf/pinctrl-atlas7.c drivers/pinctrl/sirf/pinctrl-sirf.c drivers/pinctrl/spear/pinctrl-plgpio.c drivers/platform/x86/intel_int0002_vgpio.c Not all of them may have multiple instances, though. I saw patches for some of them. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds