diff options
author | Jason Wessel <jason.wessel@windriver.com> | 2010-05-20 22:04:31 -0400 |
---|---|---|
committer | Jason Wessel <jason.wessel@windriver.com> | 2010-05-20 22:04:31 -0400 |
commit | 61eaf539b9fb4926ed57e38f6545100c3432cf1b (patch) | |
tree | e7053a803bd128e5c9e63dd659abb5fad05e80f7 /arch/x86/kernel | |
parent | 9731191f75a54c4fa17e9b9b88f3144cf4b47836 (diff) |
earlyprintk,vga,kdb: Fix \b and \r for earlyprintk=vga with kdb
Allow kdb to work properly with with earlyprintk=vga by interpreting
the backspace and carriage return output characters. These
interpretation of these characters is used for simple line editing
provided in the kdb shell.
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: H. Peter Anvin <hpa@zytor.com>
CC: x86@kernel.org
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r-- | arch/x86/kernel/early_printk.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c index b9c830c12b4a..fa99bae75ace 100644 --- a/arch/x86/kernel/early_printk.c +++ b/arch/x86/kernel/early_printk.c | |||
@@ -41,6 +41,14 @@ static void early_vga_write(struct console *con, const char *str, unsigned n) | |||
41 | writew(0x720, VGABASE + 2*(max_xpos*j + i)); | 41 | writew(0x720, VGABASE + 2*(max_xpos*j + i)); |
42 | current_ypos = max_ypos-1; | 42 | current_ypos = max_ypos-1; |
43 | } | 43 | } |
44 | #ifdef CONFIG_KGDB_KDB | ||
45 | if (c == '\b') { | ||
46 | if (current_xpos > 0) | ||
47 | current_xpos--; | ||
48 | } else if (c == '\r') { | ||
49 | current_xpos = 0; | ||
50 | } else | ||
51 | #endif | ||
44 | if (c == '\n') { | 52 | if (c == '\n') { |
45 | current_xpos = 0; | 53 | current_xpos = 0; |
46 | current_ypos++; | 54 | current_ypos++; |