Re: 2.3.49-1 -- Compilation error in traps.c in function `do_nmi'

From: Linus Torvalds (torvalds@transmeta.com)
Date: Tue Feb 29 2000 - 15:27:53 EST


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/



This archive was generated by hypermail 2b29 : Tue Feb 29 2000 - 21:00:23 EST