]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/um/drivers/stderr_console.c
Merge branch 'warnings-upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarz...
[linux-2.6-omap-h63xx.git] / arch / um / drivers / stderr_console.c
index 429ae8e6c7e514f67fac718d9912828dec7e7768..d07a97f8b9945343791d4fb32c9ad0bf5c7d9df2 100644 (file)
@@ -1,3 +1,4 @@
+#include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/console.h>
 
@@ -7,11 +8,10 @@
 /* trivial console driver -- simply dump everything to stderr                    */
 
 /*
- * Don't register by default -- as this registeres very early in the
- * boot process it becomes the default console.  And as this isn't a
- * real tty driver init isn't able to open /dev/console then.
+ * Don't register by default -- as this registers very early in the
+ * boot process it becomes the default console.
  *
- * In most cases this isn't what you want ...
+ * Initialized at init time.
  */
 static int use_stderr_console = 0;
 
@@ -43,3 +43,20 @@ static int stderr_setup(char *str)
        return 1;
 }
 __setup("stderr=", stderr_setup);
+
+/* The previous behavior of not unregistering led to /dev/console being
+ * impossible to open.  My FC5 filesystem started having init die, and the
+ * system panicing because of this.  Unregistering causes the real
+ * console to become the default console, and /dev/console can then be
+ * opened.  Making this an initcall makes this happen late enough that
+ * there is no added value in dumping everything to stderr, and the
+ * normal console is good enough to show you all available output.
+ */
+static int __init unregister_stderr(void)
+{
+       unregister_console(&stderr_console);
+
+       return 0;
+}
+
+__initcall(unregister_stderr);