vt:tackle kbd_table
authorAlan Cox <alan@linux.intel.com>
Tue, 28 Feb 2012 14:49:23 +0000 (14:49 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Mar 2012 18:50:35 +0000 (10:50 -0800)
commit079c9534a96da9a85a2a2f9715851050fbfbf749
tree0e3782ff6d341f38c6f0b3840cb3c8f2bc922df8
parent0fb8379dab9f97e4c56de8f9ea772c10eda27561
vt:tackle kbd_table

Keyboard struct lifetime is easy, but the locking is not and is completely
ignored by the existing code. Tackle this one head on

- Make the kbd_table private so we can run down all direct users
- Hoick the relevant ioctl handlers into the keyboard layer
- Lock them with the keyboard lock so they don't change mid keypress
- Add helpers for things like console stop/start so we isolate the poking
  around properly
- Tweak the braille console so it still builds

There are a couple of FIXME locking cases left for ioctls that are so hideous
they should be addressed in a later patch. After this patch the kbd_table is
private and all the keyboard jiggery pokery is in one place.

This update fixes speakup and also a memory leak in the original.

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/accessibility/braille/braille_console.c
drivers/staging/speakup/main.c
drivers/tty/sysrq.c
drivers/tty/vt/keyboard.c
drivers/tty/vt/selection.c
drivers/tty/vt/vt.c
drivers/tty/vt/vt_ioctl.c
include/linux/kbd_kern.h
include/linux/keyboard.h
include/linux/vt_kern.h