I was fixing this issue some time ago.
With CONFIG_VT (drivers/char/vt.c) enabled and a USB HID keyboard connected, we were seeing bad pointer dereferences in drivers/char/keyboard.c
In function kbd_keycode vc_cons[fg_console].d was un-initialized .
static void kbd_keycode(unsigned int keycode, int down, int hw_raw)
{
--snip--
struct vc_data *vc = vc_cons[fg_console].d;
--snip--
tty = vc->vc_tty;
--snip--
}
The workaround, almost any arch does is to initialize conswitchp with the dummy console.
conswitchp = &dummy_con;
The dummy console gets automatically selected if there is no other suitable console (VGA).
The bit we were missing is simply this fix.
Best regards,
Michael
------------------------------------------------------------------
********* Analog Devices GmbH michael.hennerich@analog.com
** ***** Systems Engineering
** ** Wilhelm-Wagenfeld-Strasse 6
** ***** D-80807 Munich
********* Germany
-