mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
parisc: pass through '\t' to early (iodc) console
commit d9b68e5e88 upstream.
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.
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
96f6b7b0a8
commit
fcd6ae1e01
@@ -1123,7 +1123,6 @@ static char __attribute__((aligned(64))) iodc_dbuf[4096];
|
||||
*/
|
||||
int pdc_iodc_print(const unsigned char *str, unsigned count)
|
||||
{
|
||||
static int posx; /* for simple TAB-Simulation... */
|
||||
unsigned int i;
|
||||
unsigned long flags;
|
||||
|
||||
@@ -1133,19 +1132,12 @@ int pdc_iodc_print(const unsigned char *str, unsigned count)
|
||||
iodc_dbuf[i+0] = '\r';
|
||||
iodc_dbuf[i+1] = '\n';
|
||||
i += 2;
|
||||
posx = 0;
|
||||
goto print;
|
||||
case '\t':
|
||||
while (posx & 7) {
|
||||
iodc_dbuf[i] = ' ';
|
||||
i++, posx++;
|
||||
}
|
||||
break;
|
||||
case '\b': /* BS */
|
||||
posx -= 2;
|
||||
i--; /* overwrite last */
|
||||
default:
|
||||
iodc_dbuf[i] = str[i];
|
||||
i++, posx++;
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user