From: Aivils Stoss <[email-masked]>

Recent kernels allow exclusive usage of input device when input device is
grabbed.  keyboard_tasklet does not check device state and switch LED's of
all keyboards.  However grabbed device may be use another LED steering
code.

This patch forbid keyboard_tasklet switch LED's of grabbed devices.

Cc: Vojtech Pavlik <[email-masked]>
Signed-off-by: Andrew Morton <[email-masked]>
---

 drivers/char/keyboard.c |    2 ++
 1 files changed, 2 insertions(+)

diff -puN drivers/char/keyboard.c~input-keyboard_tasklet-dont-touch-leds-of-already-grabed-device drivers/char/keyboard.c
--- devel/drivers/char/keyboard.c~input-keyboard_tasklet-dont-touch-leds-of-already-grabed-device	2005-09-07 20:10:07.000000000 -0700
+++ devel-akpm/drivers/char/keyboard.c	2005-09-07 20:10:07.000000000 -0700
@@ -918,6 +918,8 @@ static void kbd_bh(unsigned long dummy)
 	if (leds != ledstate) {
 		list_for_each(node,&kbd_handler.h_list) {
 			struct input_handle * handle = to_handle_h(node);
+			if (handle->dev->grab)
+				continue;
 			input_event(handle->dev, EV_LED, LED_SCROLLL, !!(leds & 0x01));
 			input_event(handle->dev, EV_LED, LED_NUML,    !!(leds & 0x02));
 			input_event(handle->dev, EV_LED, LED_CAPSL,   !!(leds & 0x04));
_