Message ID | 20110825110423.GA12911@linutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, 2011-08-25 at 13:04 +0200, Sebastian Andrzej Siewior wrote: > * Luciano Coelho | 2011-08-25 13:39:29 [+0300]: > >Any ideas what may be going wrong? > > I think my commit was identified as bogus and tglx is going to revert > it. The problem is that I force ONESHOT mode for all threaded IRQs but > there are also others without the flag which is not allowed. > > I was trying to check something but I don't get my board to boot. Could > you please try to boot with the patch reverted and paste me the > the output of > cat /proc/interrupts | grep 74 ? Hmmm... There doesn't seem to be an irq 74. The only thing I get is this: root@xiru:~# cat /proc/interrupts | grep 74 IPI1: 2667 3743 Rescheduling interrupts Which is probably not what you wanted. ;) > I *think* that the flow handler is level (I can't find evidence of it > beeing edge, and omap_alloc_gc() is the place installing it). > > So could you please gather additional debug info with this patch? > > diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c > index 2e94258..eda25a0 100644 > --- a/kernel/irq/manage.c > +++ b/kernel/irq/manage.c > @@ -1327,6 +1327,9 @@ int request_threaded_irq(unsigned int irq, irq_handler_t handler, > if (!irq_settings_can_request(desc)) > return -EINVAL; > > + if (irq == 74) > + printk(KERN_ERR "%s() h %pS th %pS f %lx dev %s flow %pS\n", __func__, > + handler, thread_fn, irqflags, devname, desc->handle_irq); > if (!handler) { > if (!thread_fn) > return -EINVAL; > > > %pS should resolve the function names. As I mentioned above, there doesn't seem to be irq 74, so this code doesn't hit. These are the interrupts reported in /proc/interrupts on my board: root@xiru:~# cat /proc/interrupts CPU0 CPU1 39: 0 0 GIC TWL6030-PIH 41: 0 0 GIC l3-dbg-irq 42: 0 0 GIC l3-app-irq 44: 5397 0 GIC DMA 52: 0 0 GIC gpmc 69: 16 0 GIC gp timer 88: 270 0 GIC omap_i2c 89: 0 0 GIC omap_i2c 91: 183 0 GIC mmc1 93: 0 0 GIC omap_i2c 94: 0 0 GIC omap_i2c 102: 0 0 GIC serial idle 104: 0 0 GIC serial idle 105: 0 0 GIC serial idle 106: 290 0 GIC serial idle, OMAP UART2 108: 1 0 GIC ohci_hcd:usb3 109: 493 0 GIC ehci_hcd:usb1 115: 6260 0 GIC mmc0 124: 1 0 GIC musb-hdrc 125: 0 0 GIC musb-hdrc 213: 0 0 GPIO wl1271 372: 0 0 twl6030 twl6030_usb 378: 0 0 twl6030 twl6030_usb 379: 0 0 twl6030 rtc0 IPI0: 0 0 Timer broadcast interrupts IPI1: 2995 3606 Rescheduling interrupts IPI2: 0 0 Function call interrupts IPI3: 57 61 Single function call interrupts IPI4: 0 0 CPU stop interrupts LOC: 8879 5844 Local timer interrupts Err: 0
* Luciano Coelho | 2011-08-25 14:24:34 [+0300]:
>These are the interrupts reported in /proc/interrupts on my board:
Thank you, this is enough information.
Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 2e94258..eda25a0 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -1327,6 +1327,9 @@ int request_threaded_irq(unsigned int irq, irq_handler_t handler, if (!irq_settings_can_request(desc)) return -EINVAL; + if (irq == 74) + printk(KERN_ERR "%s() h %pS th %pS f %lx dev %s flow %pS\n", __func__, + handler, thread_fn, irqflags, devname, desc->handle_irq); if (!handler) { if (!thread_fn) return -EINVAL;