diff options
Diffstat (limited to 'arch/um/drivers/stderr_console.c')
-rw-r--r-- | arch/um/drivers/stderr_console.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/arch/um/drivers/stderr_console.c b/arch/um/drivers/stderr_console.c index 429ae8e6c7e5..6d2cf32a9e8f 100644 --- a/arch/um/drivers/stderr_console.c +++ b/arch/um/drivers/stderr_console.c | |||
@@ -8,10 +8,7 @@ | |||
8 | 8 | ||
9 | /* | 9 | /* |
10 | * Don't register by default -- as this registeres very early in the | 10 | * Don't register by default -- as this registeres very early in the |
11 | * boot process it becomes the default console. And as this isn't a | 11 | * boot process it becomes the default console. |
12 | * real tty driver init isn't able to open /dev/console then. | ||
13 | * | ||
14 | * In most cases this isn't what you want ... | ||
15 | */ | 12 | */ |
16 | static int use_stderr_console = 0; | 13 | static int use_stderr_console = 0; |
17 | 14 | ||
@@ -43,3 +40,20 @@ static int stderr_setup(char *str) | |||
43 | return 1; | 40 | return 1; |
44 | } | 41 | } |
45 | __setup("stderr=", stderr_setup); | 42 | __setup("stderr=", stderr_setup); |
43 | |||
44 | /* The previous behavior of not unregistering led to /dev/console being | ||
45 | * impossible to open. My FC5 filesystem started having init die, and the | ||
46 | * system panicing because of this. Unregistering causes the real | ||
47 | * console to become the default console, and /dev/console can then be | ||
48 | * opened. Making this an initcall makes this happen late enough that | ||
49 | * there is no added value in dumping everything to stderr, and the | ||
50 | * normal console is good enough to show you all available output. | ||
51 | */ | ||
52 | static int __init unregister_stderr(void) | ||
53 | { | ||
54 | unregister_console(&stderr_console); | ||
55 | |||
56 | return 0; | ||
57 | } | ||
58 | |||
59 | __initcall(unregister_stderr); | ||