On Fri, 18 Oct 2019 09:28:17 +0100, Daniel Wagner <dwagner@xxxxxxx> wrote: > > handle_simple_irq() expect interrupts to be disabled. The USB > framework is using threaded interrupts, which implies that interrupts > are re-enabled as soon as it has run. > > This reverts the changes from cc89c323a30e ("lan78xx: Use irq_domain > for phy interrupt from USB Int. EP"). > > [ 4.886203] 000: irq 79 handler irq_default_primary_handler+0x0/0x8 enabled interrupts > [ 4.886243] 000: WARNING: CPU: 0 PID: 0 at kernel/irq/handle.c:152 __handle_irq_event_percpu+0x154/0x168 > [ 4.896294] 000: Modules linked in: > [ 4.896301] 000: CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.3.6 #39 > [ 4.896310] 000: Hardware name: Raspberry Pi 3 Model B+ (DT) > [ 4.896315] 000: pstate: 60000005 (nZCv daif -PAN -UAO) > [ 4.896321] 000: pc : __handle_irq_event_percpu+0x154/0x168 > [ 4.896331] 000: lr : __handle_irq_event_percpu+0x154/0x168 > [ 4.896339] 000: sp : ffff000010003cc0 > [ 4.896346] 000: x29: ffff000010003cc0 x28: 0000000000000060 > [ 4.896355] 000: x27: ffff000011021980 x26: ffff00001189c72b > [ 4.896364] 000: x25: ffff000011702bc0 x24: ffff800036d6e400 > [ 4.896373] 000: x23: 000000000000004f x22: ffff000010003d64 > [ 4.896381] 000: x21: 0000000000000000 x20: 0000000000000002 > [ 4.896390] 000: x19: ffff8000371c8480 x18: 0000000000000060 > [ 4.896398] 000: x17: 0000000000000000 x16: 00000000000000eb > [ 4.896406] 000: x15: ffff000011712d18 x14: 7265746e69206465 > [ 4.896414] 000: x13: ffff000010003ba0 x12: ffff000011712df0 > [ 4.896422] 000: x11: 0000000000000001 x10: ffff000011712e08 > [ 4.896430] 000: x9 : 0000000000000001 x8 : 000000000003c920 > [ 4.896437] 000: x7 : ffff0000118cc410 x6 : ffff0000118c7f00 > [ 4.896445] 000: x5 : 000000000003c920 x4 : 0000000000004510 > [ 4.896453] 000: x3 : ffff000011712dc8 x2 : 0000000000000000 > [ 4.896461] 000: x1 : 73a3f67df94c1500 x0 : 0000000000000000 > [ 4.896466] 000: Call trace: > [ 4.896471] 000: __handle_irq_event_percpu+0x154/0x168 > [ 4.896481] 000: handle_irq_event_percpu+0x50/0xb0 > [ 4.896489] 000: handle_irq_event+0x40/0x98 > [ 4.896497] 000: handle_simple_irq+0xa4/0xf0 > [ 4.896505] 000: generic_handle_irq+0x24/0x38 > [ 4.896513] 000: intr_complete+0xb0/0xe0 > [ 4.896525] 000: __usb_hcd_giveback_urb+0x58/0xd8 > [ 4.896533] 000: usb_giveback_urb_bh+0xd0/0x170 > [ 4.896539] 000: tasklet_action_common.isra.0+0x9c/0x128 > [ 4.896549] 000: tasklet_hi_action+0x24/0x30 > [ 4.896556] 000: __do_softirq+0x120/0x23c > [ 4.896564] 000: irq_exit+0xb8/0xd8 > [ 4.896571] 000: __handle_domain_irq+0x64/0xb8 > [ 4.896579] 000: bcm2836_arm_irqchip_handle_irq+0x60/0xc0 > [ 4.896586] 000: el1_irq+0xb8/0x140 > [ 4.896592] 000: arch_cpu_idle+0x10/0x18 > [ 4.896601] 000: do_idle+0x200/0x280 > [ 4.896608] 000: cpu_startup_entry+0x20/0x28 > [ 4.896615] 000: rest_init+0xb4/0xc0 > [ 4.896623] 000: arch_call_rest_init+0xc/0x14 > [ 4.896632] 000: start_kernel+0x454/0x480 > > [dwagner: Updated Jisheng's initial patch] > > Fixes: cc89c323a30e ("lan78xx: Use irq_domain for phy interrupt from USB Int. EP") > Cc: Woojung Huh <woojung.huh@xxxxxxxxxxxxx> > Cc: Marc Zyngier <maz@xxxxxxxxxx> > Cc: Andrew Lunn <andrew@xxxxxxx> > Cc: Stefan Wahren <wahrenst@xxxxxxx> > Cc: Jisheng Zhang <Jisheng.Zhang@xxxxxxxxxxxxx> > Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Signed-off-by: Daniel Wagner <dwagner@xxxxxxx> > --- > Hi, > > With Andrew's "net: usb: lan78xx: Connect PHY before registering MAC" > and this patch I am able to boot and use the RPi3 with -rt. > > There was already a lot of dicussion on this topic but no fixes so > far. So I just suggest to revert the original commit since it is not > clear to me what it fixes: > > https://www.spinics.net/lists/netdev/msg542290.html > https://marc.info/?l=linux-netdev&m=154604180927252&w=2 > https://patchwork.kernel.org/patch/10888797/ > > Without this revert RPi3 is not usable for -rt at this point. Acked-by: Marc Zyngier <maz@xxxxxxxxxx> M. -- Jazz is not dead, it just smells funny.