USB polling (75% done)
Hans Petter Selasky
hselasky at c2i.net
Fri Jul 24 13:52:23 UTC 2009
On Friday 24 July 2009 14:39:45 Andriy Gapon wrote:
> Maybe Giant asserts in ukbd are not needed?
Option 1) They are needed as long as ukbd is not allowed to lock Giant when it
needs it. Like when you are at the console and have Scroll-Lock pressed, and
then something is printed, then printf() will directly call into the keyboard
layer, to disable scroll lock and its associated LED. Locking Giant from a
sub-routine of printf() is not smart and leads to LOR's. Having an AT-keyboard
you can always peek or poke a port directly, but an USB-keyboard is quite more
advanced. And like some other guy pointed out recently: In some cases the
keyboard gets enabled without Giant locked, even though that is a requirement.
Option 2) Some work is needed to get the non-USB part of the statemachine in
ukbd out of Giant. I'm not a kbdmux expert either. I don't have the full
overview from where the variables in the ukbd's keyboard state can be read and
written, and which fields in the ukbd's keyboard state needs to remain Giant
locked due to kbdmux and kbd. That's basically what is stopping me from
converting ukbd free of Giant.
Option 3) Assume that the kernel never panics :-)
--HPS
More information about the freebsd-current
mailing list