Commit d9b68e5e88248bb24fd4e455588bea1d56108fd6
Committed by
Linus Torvalds
1 parent
f46e9913fa
Exists in
master
and in
7 other branches
parisc: pass through '\t' to early (iodc) console
The firmware handles '\t' internally, so stop trying to emulate it (which, incidentally, had a bug in it.) Fixes a really weird hang at bootup in rcu_bootup_announce, which, as far as I can tell, is the first printk in the core kernel to use a tab as the first character. Cc: stable@kernel.org Signed-off-by: Kyle McMartin <kyle@parisc-linux.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 1 changed file with 2 additions and 10 deletions Side-by-side Diff
arch/parisc/kernel/firmware.c
... | ... | @@ -1123,7 +1123,6 @@ |
1123 | 1123 | */ |
1124 | 1124 | int pdc_iodc_print(const unsigned char *str, unsigned count) |
1125 | 1125 | { |
1126 | - static int posx; /* for simple TAB-Simulation... */ | |
1127 | 1126 | unsigned int i; |
1128 | 1127 | unsigned long flags; |
1129 | 1128 | |
1130 | 1129 | |
1131 | 1130 | |
1132 | 1131 | |
... | ... | @@ -1133,19 +1132,12 @@ |
1133 | 1132 | iodc_dbuf[i+0] = '\r'; |
1134 | 1133 | iodc_dbuf[i+1] = '\n'; |
1135 | 1134 | i += 2; |
1136 | - posx = 0; | |
1137 | 1135 | goto print; |
1138 | - case '\t': | |
1139 | - while (posx & 7) { | |
1140 | - iodc_dbuf[i] = ' '; | |
1141 | - i++, posx++; | |
1142 | - } | |
1143 | - break; | |
1144 | 1136 | case '\b': /* BS */ |
1145 | - posx -= 2; | |
1137 | + i--; /* overwrite last */ | |
1146 | 1138 | default: |
1147 | 1139 | iodc_dbuf[i] = str[i]; |
1148 | - i++, posx++; | |
1140 | + i++; | |
1149 | 1141 | break; |
1150 | 1142 | } |
1151 | 1143 | } |