2.6.30.1 : irq 21: nobody cared (try booting with the "irqpoll" option)
My PC104 (Pentium M) is connected to a customized hardware over PCI.
This hardware creates a PCI interrupt every 2ms.
The interrupt is requested by:
rc=request_irq(21,my_handler,IRQF_SHARED,"HW",&device_id)
rc=0. The handler is called upon an interrupt. Before calling to request_irq, the /proc/interrupts does not contains a"21" entry.
After the call, there is such entry (with an interrupt counter)
After few minutes I got the error:
irq 21: nobody cared (try booting with the "irqpoll" option)
with a trace call. There is also a message that the interrupt was disabled.
21 is taken from: pci_dev->irq
According to the linux code (kernel\irq\spurious.c: line 113) this happens in case of "99,900 of the previous 100,000 have not been handled"
When I called to request_irq with IRQF_DISABLED it worked file but this causes other interrupts (e.g ethernet) to be disabled.
My handler is very small:
irqreturn_t my_handler(int irq, void *dev_id, struct pt_regs *regs)
{
data=ioread32 (address);
if (data==3)
do something
return IRQ_HANDLED;
}
The "do something" is not implemented yet.
What can be the reason for this error message ?
Thanks.
|