On Mon, Jun 19, 2017 at 10:59 PM, Stefan Wahren <stefan.wahren@xxxxxxxx> wrote: > i'm currently working Raspberry Pi Zero W support and had problems to boot with Mini UART > (no sign of life after startup). After switching to pl011 with EARLY_PRINTK, the Zero W boots > and i get the following output: (...) > [ 0.255621] ------------[ cut here ]------------ > [ 0.255742] WARNING: CPU: 0 PID: 1 at kernel/irq/chip.c:850 __irq_do_set_handler+0x4c/0x14c > [ 0.255811] Modules linked in: > [ 0.255862] CPU: 0 PID: 1 Comm: swapper Not tainted 4.12.0-rc5-next-20170616+ #3 > [ 0.255924] Hardware name: Generic DT based system > [ 0.256009] [<c010f64c>] (unwind_backtrace) from [<c010c604>] (show_stack+0x20/0x24) > [ 0.256109] [<c010c604>] (show_stack) from [<c037bb88>] (dump_stack+0x20/0x28) > [ 0.256204] [<c037bb88>] (dump_stack) from [<c011e76c>] (__warn+0xe4/0x110) > [ 0.256270] [<c011e76c>] (__warn) from [<c011e868>] (warn_slowpath_null+0x30/0x38) > [ 0.256355] [<c011e868>] (warn_slowpath_null) from [<c01590f0>] (__irq_do_set_handler+0x4c/0x14c) > [ 0.256444] [<c01590f0>] (__irq_do_set_handler) from [<c01592dc>] (irq_set_chained_handler_and_data+0x4c/0x64) > [ 0.256548] [<c01592dc>] (irq_set_chained_handler_and_data) from [<c03ae534>] (gpiochip_set_chained_irqchip+0x80/0xa0) > [ 0.256641] [<c03ae534>] (gpiochip_set_chained_irqchip) from [<c03aa9e8>] (bcm2835_pinctrl_probe+0x31c/0x3c8) > [ 0.256746] [<c03aa9e8>] (bcm2835_pinctrl_probe) from [<c044f03c>] (platform_drv_probe+0x60/0xac) > [ 0.256840] [<c044f03c>] (platform_drv_probe) from [<c044d434>] (driver_probe_device+0x1d8/0x438) > [ 0.256929] [<c044d434>] (driver_probe_device) from [<c044d730>] (__driver_attach+0x9c/0x100) > [ 0.257014] [<c044d730>] (__driver_attach) from [<c044b6e4>] (bus_for_each_dev+0x84/0x98) > [ 0.257098] [<c044b6e4>] (bus_for_each_dev) from [<c044cd7c>] (driver_attach+0x28/0x30) > [ 0.257181] [<c044cd7c>] (driver_attach) from [<c044c7dc>] (bus_add_drcm2835_pinctrl_driver_init+0x20/0x28) > [ 0.257535] [<c0b2c9b0>] (bcm2835_pinctrl_driver_init) from [<c0101ac0>] (do_one_initcall+0xc0/0x188) > [ 0.257635] [<c0101ac0>] (do_one_initcall) from [<c0b00f64>] (kernel_init_freeable+0x170/0x234) > [ 0.257728] [<c0b00f64>] (kernel_init_freeable) from [<c07366b4>] (kernel_init+0x18/0x11c) > [ 0.257822] [<c07366b4>] (kernel_init) from [<c0107f38>] (ret_from_fork+0x14/0x3c) > [ 0.257904] random: init_oops_id+0x30/0x4c get_random_bytes called with crng_init=0 > [ 0.257980] ---[ end trace 9c0064da26f1596a ]--- > [ 0.261962] Serial: 8250/16550 driver, 1 ports, IRQ sharing enabled > [ 0.265460] libphy: Fixed MDIO Bus: probed > ... > > According to the source code, this is the relevant line: > > if (WARN_ON(!irq_data || irq_data->chip == &no_irq_chip)) > return; Isn't that because something is using the irqchip before the irqchip is registered, so an initcall problem? I don't really know how some stuff like irqchips deal with deferred probe or if they even can. I had some similar patch the other day fixing something like this in another driver, I guess you can try reordering the initcalls. (Sorry.) Yours, Linus Walleij -- 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