device returned IRQ_WAKE_THREAD but no thread function avable error

Chan Kim ckim at etri.re.kr
Mon May 18 05:45:40 EDT 2015


In the smsc911x Ethernet chip driver, I'm changing the FIFO write and read to DMA write and read.
By the way, this driver uses loopback test during initialization using a simple test packet.
I registered the DMA controller irq using request_irq(irq, handler, flags, name, dev) which calls request_threaded_irq(irq, handler, NULL, flags, name, dev).

The process goes into sleep using wait_event_interruptible() after DMA command and I've seen the ISR handler is called by the DMA completion, and during the ISR, wake_up_interruptible() is called to wake up the process.

But when the program runs I get this error message below during the first interrupt processing.
"IRQ 2 device ald_dmac returned IRQ_WAKE_THREAD but no thread function available"
I don't know why ald_dmac returned IRQ_WAKE_THREAD (because my interrupt handler only returns IRQ_HANDLED), and I have a feeling that in this case (processing going to sleep and woken up by the ISR), I should use some other method to register my interrupt.
Can anybody give me some advice?

Thanks a lot in advance.
Chan Kim


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150518/3cd78edc/attachment.html 


More information about the Kernelnewbies mailing list