Skip to content

Commit

Permalink
parisc: pass through '\t' to early (iodc) console
Browse files Browse the repository at this point in the history
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: [email protected]
Signed-off-by: Kyle McMartin <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
jkkm authored and torvalds committed Aug 4, 2010
1 parent f46e991 commit d9b68e5
Showing 1 changed file with 2 additions and 10 deletions.
12 changes: 2 additions & 10 deletions arch/parisc/kernel/firmware.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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;
}
}
Expand Down

0 comments on commit d9b68e5

Please sign in to comment.