diff options
Diffstat (limited to 'arch/mips/kernel/early_printk.c')
-rw-r--r-- | arch/mips/kernel/early_printk.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/mips/kernel/early_printk.c b/arch/mips/kernel/early_printk.c index 304efdc5682f..9dccfa4752b2 100644 --- a/arch/mips/kernel/early_printk.c +++ b/arch/mips/kernel/early_printk.c @@ -12,7 +12,8 @@ extern void prom_putchar(char); -static void early_console_write(struct console *con, const char *s, unsigned n) +static void __init +early_console_write(struct console *con, const char *s, unsigned n) { while (n-- && *s) { if (*s == '\n') @@ -22,19 +23,20 @@ static void early_console_write(struct console *con, const char *s, unsigned n) } } -static struct console early_console = { +static struct console early_console __initdata = { .name = "early", .write = early_console_write, .flags = CON_PRINTBUFFER | CON_BOOT, .index = -1 }; +static int early_console_initialized __initdata; + void __init setup_early_printk(void) { - register_console(&early_console); -} + if (early_console_initialized) + return; + early_console_initialized = 1; -void __init disable_early_printk(void) -{ - unregister_console(&early_console); + register_console(&early_console); } |