Re: 2.6.6-mm2 : Hitting Num Lock kills keyboard

From: Dmitry Torokhov
Date: Fri May 14 2004 - 00:58:15 EST


On Thursday 13 May 2004 05:45 pm, Dmitry Torokhov wrote:
> On Thursday 13 May 2004 04:41 pm, Eric Valette wrote:
> > Andrew Morton wrote:
> > > Eric Valette <eric.valette@xxxxxxx> wrote:
> > >
> > >>Eric Valette wrote:
> > >>
> > >>>Andrew,
> > >>>
> > >>>I tested 2.6.6-mm2 this afternoon and twice I totally lost my keyboard.
> > >>
> > >>Well, I can reproduce it at will : I just need to hit the numlock key
> > >>and keyboard is frozen.
> > >
> > >
> > > Could you please do
> > >
> > > patch -p1 -R -i bk-input.patch
> >
> > Yes it fixes it. Thanks for the quick answer and sorry for the delay...
> >
> > In the thread, other have reported the same problem with the Caps Lock
> > key. Both keys have at least three things in common :
> > 1) They do no echo any character,
> > 2) They modify the interpretation of the next key pressed (change a
> > keyboard status),
> > 3) They light up a led on the keyboard,
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> atkbd tries to switch leds but one tasklet can not interrupt another so
> it deadlocks...
>
> You need to revert just the patch below, not entire bk-input
>

Guys,

I need some guidance. The issue can be resolved in several ways but I am not
sure which one is better:

- just revert the patch and continue doing everything in IRQ context;
- move IRQ/tasklet split higher, into atkbd and psmouse-base respectively.
Every device would have it's own ring buffer, tasklet will be fired off
for incoming data only (i.e. ACKs and command response will be processed
right there in IRQ context);
- move drivers/char/keyboard.c from tasklet to schedule_work. Need also
take care of others who are using keyboard_tasklet (qtronix, scan_keyb,
ec3104_keyb);
- have atkbd use schedule_work to do LED and repeat rate setting.

What would you suggest?

--
Dmitry
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/