
From: "Randy.Dunlap" <randy.dunlap@verizon.net>

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);

_
