diff options
author | Mark Brown <broonie@kernel.org> | 2016-03-18 09:50:49 +0000 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-03-18 09:50:49 +0000 |
commit | 0f221533bae04ea913dc8ebe18cb876a916ff690 (patch) | |
tree | 77e668f0080e2ca245bd6150f5046370e8fa9f4b /kernel/debug/kdb/kdb_io.c | |
parent | 917a9133a6b3c6cc2b6b5649d28c617a4ccac3e6 (diff) | |
parent | 127f7fb4c452328fa24f4c29eb403a97c5f7ea8c (diff) |
Merge remote-tracking branch 'lsk/linux-linaro-lsk-v4.4-android' into linux-linaro-lsk-v4.4-androidlsk-v4.4-16.03-android
Diffstat (limited to 'kernel/debug/kdb/kdb_io.c')
-rw-r--r-- | kernel/debug/kdb/kdb_io.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/kernel/debug/kdb/kdb_io.c b/kernel/debug/kdb/kdb_io.c index fc1ef736253c..0b891286a150 100644 --- a/kernel/debug/kdb/kdb_io.c +++ b/kernel/debug/kdb/kdb_io.c @@ -216,7 +216,7 @@ static char *kdb_read(char *buffer, size_t bufsize) int i; int diag, dtab_count; int key; - + static int last_crlf; diag = kdbgetintenv("DTABCOUNT", &dtab_count); if (diag) @@ -237,6 +237,9 @@ poll_again: return buffer; if (key != 9) tab = 0; + if (key != 10 && key != 13) + last_crlf = 0; + switch (key) { case 8: /* backspace */ if (cp > buffer) { @@ -254,7 +257,12 @@ poll_again: *cp = tmp; } break; - case 13: /* enter */ + case 10: /* new line */ + case 13: /* carriage return */ + /* handle \n after \r */ + if (last_crlf && last_crlf != key) + break; + last_crlf = key; *lastchar++ = '\n'; *lastchar++ = '\0'; if (!KDB_STATE(KGDB_TRANS)) { |