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>

authored by Kyle McMartin and committed by Linus Torvalds d9b68e5e f46e9913

+2 -10
+2 -10
arch/parisc/kernel/firmware.c
··· 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 ··· 1132 1133 iodc_dbuf[i+0] = '\r'; 1133 1134 iodc_dbuf[i+1] = '\n'; 1134 1135 i += 2; 1135 - posx = 0; 1136 1136 goto print; 1137 - case '\t': 1138 - while (posx & 7) { 1139 - iodc_dbuf[i] = ' '; 1140 - i++, posx++; 1141 - } 1142 - break; 1143 1137 case '\b': /* BS */ 1144 - posx -= 2; 1138 + i--; /* overwrite last */ 1145 1139 default: 1146 1140 iodc_dbuf[i] = str[i]; 1147 - i++, posx++; 1141 + i++; 1148 1142 break; 1149 1143 } 1150 1144 }