On Sat, May 24, 2008 at 8:01 AM, ilya <jibberboosh@xxxxxxxxx> wrote: > Hello, thank you for the information. > >> The stack trace starts here: >> >> ./drivers/usb/gadget/file_storage.c: >> static int fsg_main_thread(void *fsg_) >> fsg->thread_task = kthread_create(fsg_main_thread, fsg, >> >> Looking at this: >> >> kernel/irq/spurious.c:int noirqdebug_setup(char *str) >> kernel/irq/spurious.c: noirqdebug = 1; >> kernel/irq/spurious.c:__setup("noirqdebug", noirqdebug_setup); >> kernel/irq/spurious.c:module_param(noirqdebug, bool, 0644); >> kernel/irq/spurious.c:MODULE_PARM_DESC(noirqdebug, "Disable irq lockup >> detection when true"); >> >> if noirqdebug is set to 0, then note_interrupt() will not be >> executed, and u won't get all those message: > > But the problem is that the kernel calls do_level_irq() which is in > arch/arm/kernel/irq.c Could it mean that it was a spurious interrupt > but was not recognized as such? Unfortunately, irq.c does not have > option similar to noirqdebug so the only thing I could do is to comment > that section of code out. > kernel/irq/handle.c: __do_IRQ() is arch-indep, ie....your ARM will go through this path as well.....: #ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ /** * __do_IRQ - original all in one highlevel IRQ handler * @irq: the interrupt number * * __do_IRQ handles all normal device IRQ's (the special * SMP cross-CPU interrupts have their own specific * handlers). * * This is the original x86 implementation which is used for every * interrupt type. */ unsigned int __do_IRQ(unsigned int irq) { struct irq_desc *desc = irq_desc + irq; struct irqaction *action; unsigned int status; and noirqdebug is a bootup parameter u can pass in.....noirqdebug=1 or something like that.. -- Regards, Peter Teoh -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ