Keyboard lockup fixed! (Re: keyboard loss in DF)
Matthew Dillon
dillon at apollo.backplane.com
Thu Dec 16 00:35:57 PST 2004
I believe I have fixed the problem. I would like to thank everyone who
submitted bug reports on this issue! The reports were invaluable and I
believe I was able to find the problem.
Basically the problem is that the keyboard interrupt is edge-triggered,
a left-over from the early PC days. Due to this it is possible for an
interrupt to be 'lost' and create a situation where no new interrupt
occurs.
The keyboard driver has a 10hz poll routine to detect the lost interrupt
and get things moving again. Callout timer work I did in September
broke the poll routine. Without a working poll routine the keyboard
can basically stop working under certain latency-related conditions.
I would like everyone who reported problems to update their kernels,
make sure you have /usr/src/sys/dev/misc/kbd/kbd.c rev 1.14, and retest.
-Matt
More information about the Bugs
mailing list