Messages in this thread |  | | | Date | Tue, 29 Feb 2000 12:27:53 -0800 (PST) | | From | Linus Torvalds <> | | Subject | Re: 2.3.49-1 -- Compilation error in traps.c in function `do_nmi' |
| |
On Tue, 29 Feb 2000, Miles Lane wrote: > > spurious 8259A interrupt: IRQ7 > keyboard: Timeout - AT keyboard not present?
The spurious 8259A interrupt is probably just because there is a driver that had some timing whereby it made its own interrupt go away without it having ever been acknowledged by the CPU - so the 8259A had had time to raise it, but by the time the CPU got along to servicing it it wasn't there any more and the i8259 gives us the spurious 7 instead.
A spurious irq7 is not necessarily a sign of anything really bad happening..
The keyboard thing makes me more worried. My current suspicion would be that somehow a edge-triggered interrupt is just lost due to some magic timing issues, and it stays lost forever because we don't touch the keyboard controller unless it asks us to look at it.
So putting the two theories would be that it's the _keyboard_ interrupt that the driver just made go away, and because it wasn't handled the machine is now dead forever as far as the keyboard is concerned.
When we read the keyboard status or data ports enough to make the controller think we handled the interrupt, but not enough to realize that there isn't anything more to read, then..
The simple solution to this may be just a timeout - having a timer that checks the keyboard every few seconds and does a "handle_kbd_event()" whether an interrupt came in or not.
Linus
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
|  |