From: "Randy.Dunlap" This patch enables earlier SysRq during kernel init. This is done by changing some initcall levels for kbd/serio/input etc. drivers/char/keyboard.c | 2 ++ drivers/char/mem.c | 2 +- drivers/char/vt.c | 1 - drivers/input/input.c | 2 +- drivers/input/keyboard/atkbd.c | 2 +- drivers/input/serio/i8042.c | 2 +- drivers/input/serio/serio.c | 2 +- 7 files changed, 7 insertions(+), 6 deletions(-) diff -puN drivers/char/keyboard.c~earlier-keyboard-init drivers/char/keyboard.c --- 25/drivers/char/keyboard.c~earlier-keyboard-init 2003-04-03 22:16:14.000000000 -0800 +++ 25-akpm/drivers/char/keyboard.c 2003-04-03 22:16:14.000000000 -0800 @@ -1235,3 +1235,5 @@ int __init kbd_init(void) return 0; } + +arch_initcall(kbd_init); diff -puN drivers/char/mem.c~earlier-keyboard-init drivers/char/mem.c --- 25/drivers/char/mem.c~earlier-keyboard-init 2003-04-03 22:16:14.000000000 -0800 +++ 25-akpm/drivers/char/mem.c 2003-04-03 22:16:14.000000000 -0800 @@ -716,4 +716,4 @@ int __init chr_dev_init(void) return 0; } -__initcall(chr_dev_init); +arch_initcall(chr_dev_init); diff -puN drivers/char/vt.c~earlier-keyboard-init drivers/char/vt.c --- 25/drivers/char/vt.c~earlier-keyboard-init 2003-04-03 22:16:14.000000000 -0800 +++ 25-akpm/drivers/char/vt.c 2003-04-03 22:16:14.000000000 -0800 @@ -2549,7 +2549,6 @@ int __init vty_init(void) if (tty_register_driver(&console_driver)) panic("Couldn't register console driver\n"); - kbd_init(); console_map_init(); #ifdef CONFIG_PROM_CONSOLE prom_con_init(); diff -puN drivers/input/input.c~earlier-keyboard-init drivers/input/input.c --- 25/drivers/input/input.c~earlier-keyboard-init 2003-04-03 22:16:14.000000000 -0800 +++ 25-akpm/drivers/input/input.c 2003-04-03 22:16:14.000000000 -0800 @@ -717,5 +717,5 @@ static void __exit input_exit(void) devclass_unregister(&input_devclass); } -module_init(input_init); +postcore_initcall(input_init); module_exit(input_exit); diff -puN drivers/input/keyboard/atkbd.c~earlier-keyboard-init drivers/input/keyboard/atkbd.c --- 25/drivers/input/keyboard/atkbd.c~earlier-keyboard-init 2003-04-03 22:16:14.000000000 -0800 +++ 25-akpm/drivers/input/keyboard/atkbd.c 2003-04-03 22:16:14.000000000 -0800 @@ -597,5 +597,5 @@ void __exit atkbd_exit(void) serio_unregister_device(&atkbd_dev); } -module_init(atkbd_init); +arch_initcall(atkbd_init); module_exit(atkbd_exit); diff -puN drivers/input/serio/i8042.c~earlier-keyboard-init drivers/input/serio/i8042.c --- 25/drivers/input/serio/i8042.c~earlier-keyboard-init 2003-04-03 22:16:14.000000000 -0800 +++ 25-akpm/drivers/input/serio/i8042.c 2003-04-03 22:16:14.000000000 -0800 @@ -870,5 +870,5 @@ void __exit i8042_exit(void) i8042_platform_exit(); } -module_init(i8042_init); +arch_initcall(i8042_init); module_exit(i8042_exit); diff -puN drivers/input/serio/serio.c~earlier-keyboard-init drivers/input/serio/serio.c --- 25/drivers/input/serio/serio.c~earlier-keyboard-init 2003-04-03 22:16:14.000000000 -0800 +++ 25-akpm/drivers/input/serio/serio.c 2003-04-03 22:16:14.000000000 -0800 @@ -216,5 +216,5 @@ void serio_exit(void) wait_for_completion(&serio_exited); } -module_init(serio_init); +postcore_initcall(serio_init); module_exit(serio_exit); _