Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d9b68e5e authored by Kyle McMartin's avatar Kyle McMartin Committed by Linus Torvalds
Browse files

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: default avatarKyle McMartin <kyle@parisc-linux.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f46e9913
Loading
Loading
Loading
Loading
+2 −10
Original line number Diff line number Diff line
@@ -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;
		}
	}