mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-21 01:50:05 +07:00
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: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Chris Zankel <chris@zankel.net>
This commit is contained in:
parent
50c08f8e9f
commit
c88d8df0cc
@ -91,7 +91,7 @@ static int rs_write(struct tty_struct * tty,
|
||||
{
|
||||
/* 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;
|
||||
}
|
||||
|
||||
@ -122,12 +122,7 @@ static void rs_poll(unsigned long priv)
|
||||
|
||||
static int rs_put_char(struct tty_struct *tty, unsigned char ch)
|
||||
{
|
||||
char buf[2];
|
||||
|
||||
buf[0] = ch;
|
||||
buf[1] = '\0'; /* Is this NULL necessary? */
|
||||
__simc (SYS_write, 1, (unsigned long) buf, 1, 0, 0);
|
||||
return 1;
|
||||
return rs_write(tty, &ch, 1);
|
||||
}
|
||||
|
||||
static void rs_flush_chars(struct tty_struct *tty)
|
||||
|
Loading…
Reference in New Issue
Block a user