fix - ensure we don't use bootconsoles after init has been released
Robin Getz [Wed, 22 Aug 2007 03:14:58 +0000 (23:14 -0400)]
Gerd Hoffmann pointed out that my patch from yesterday can lead
to a null pointer dereference if the kernel is booted with no
console, and no earlyprintk defined. This fixes that issue.

Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

kernel/printk.c

index 5c7c325..8451dfc 100644 (file)
@@ -1085,10 +1085,12 @@ EXPORT_SYMBOL(unregister_console);
 
 static int __init disable_boot_consoles(void)
 {
-       if (console_drivers->flags & CON_BOOT) {
-               printk(KERN_INFO "turn off boot console %s%d\n",
-                       console_drivers->name, console_drivers->index);
-               return unregister_console(console_drivers);
+       if (console_drivers != NULL) {
+               if (console_drivers->flags & CON_BOOT) {
+                       printk(KERN_INFO "turn off boot console %s%d\n",
+                               console_drivers->name, console_drivers->index);
+                       return unregister_console(console_drivers);
+               }
        }
        return 0;
 }