When you see a message like this one, it is not appropriate to
assume that it is in fact an error. It probably isn't.
"Use the source, Luke!" To find an explanation for your question, I did:
grep -rilw "disabling IRQ #"/usr/src/linux/*
This took me to
kernel/irq/spurious.c Not too much in the way of explanation there, although this is where that message came from. The author said:
Quote:
* If 99,900 of the previous 100,000 interrupts have not been handled
* then assume that the IRQ is stuck in some manner. Drop a diagnostic
* and try to turn the IRQ off.
*
* (The other 100-of-100,000 interrupts may have been a correctly
* functioning device sharing an IRQ with the failing one)
|
Not so helpful to me.
So, I used the same
grep technique to look for the word "spurious" in the Documentation subfolder.
In
Documentation/filesystems/proc.txt I find the following paragraph:
Quote:
... a spurious interrupt is some interrupt that was raised then lowered by some IO device before it could be fully processed by the APIC. Hence the APIC sees the interrupt but does not know what device it came from. For this case the APIC will generate the interrupt with a IRQ vector of 0xff. This might also be generated by chipset bugs.
|
If you know your system well, find out what device(s) are sitting on IRQ #19. It is most likely to be a network card. In that case, perhaps your system is using the wrong or an inappropriate driver for that card.
Each interrupt-handler is supposed to do whatever is necessary to shut off that interrupt after handling it, and what you have here (from the kernel's point of view) is "a phone that just don't stop ringin'."