Commit c88d8df0 authored by Max Filippov's avatar Max Filippov Committed by Chris Zankel

xtensa: ISS: fix rs_put_char

ISS serial console prints garbage instead of symbols printed via
rs_put_char. gcc optimizes away putting prined symbol into memory buffer
because there's no evidence that the buffer is used afterwards.

Make rs_put_char and rs_write use simc_write that has explicit wmb.
Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
Signed-off-by: default avatarChris Zankel <chris@zankel.net>
parent 50c08f8e
...@@ -91,7 +91,7 @@ static int rs_write(struct tty_struct * tty, ...@@ -91,7 +91,7 @@ static int rs_write(struct tty_struct * tty,
{ {
/* see drivers/char/serialX.c to reference original version */ /* see drivers/char/serialX.c to reference original version */
__simc (SYS_write, 1, (unsigned long)buf, count, 0, 0); simc_write(1, buf, count);
return count; return count;
} }
...@@ -122,12 +122,7 @@ static void rs_poll(unsigned long priv) ...@@ -122,12 +122,7 @@ static void rs_poll(unsigned long priv)
static int rs_put_char(struct tty_struct *tty, unsigned char ch) static int rs_put_char(struct tty_struct *tty, unsigned char ch)
{ {
char buf[2]; return rs_write(tty, &ch, 1);
buf[0] = ch;
buf[1] = '\0'; /* Is this NULL necessary? */
__simc (SYS_write, 1, (unsigned long) buf, 1, 0, 0);
return 1;
} }
static void rs_flush_chars(struct tty_struct *tty) static void rs_flush_chars(struct tty_struct *tty)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment