[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: irq nobody cared error



Thanks for your email. interrupt handler correctly returns IRQ_HANDLED and IRQ_NONE. I was checking the conditions for which IRQ gets disabled in spurios.c and the condition says if (desc->irqs_unhandled > 99900) disable and kill irq and that is precisely what is happening. So, from my understanding my card generates a lot of interrupts upon opening up the device and the kernel disables it.

I may be wrong in my understanding of the code. Perhaps, a kernel guy may be able to answer my questions.

Regards,

Dinesh


black hole wrote:
Hello,

On 11/1/06, *Dinesh* <dbhat@xxxxxxxxx <mailto:dbhat@xxxxxxxxx>> wrote:

    Thanks for your reply. Yes, our driver is programmed to share irqs.
    SA_SHIRQ is used.

Dinesh


Ok, I hope this helps a little bit more :) . Did you try a possibility when your interrupt handling function always returned IRQ_HANDLED? Also, did you have a look at the source code of these kernel functions ( http://lxr.linux.no) - __do_IRQ(), handle_IRQ_event(), note_interrupt(), __report_bad_irq and misrouted_irq() ?


I think that the __report_bad_irq() function is what produces the "nobody cared" message and the note_interrupt() function is what
prints the "Disabling IRQ" message.


Just in case you would be looking for the term "spurious interrupt" -
http://en.wikipedia.org/wiki/Interrupt <http://en.wikipedia.org/wiki/Interrupt>.



BlackHole





-- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/