mxser: don't start TX from tty_operations::put_char
TX is not supposed to be started from tty_operations::put_char. Line disciplines ought to call tty_operations::put_char several times and then do a single tty_operations::flush_chars to start TX. Fix this in mxser by removing TX startup from mxser_put_char. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Link: https://lore.kernel.org/r/20210618061516.662-58-jslaby@suse.cz Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
007bbdc875
Коммит
8aff64e00f
|
@ -998,17 +998,7 @@ static int mxser_put_char(struct tty_struct *tty, unsigned char ch)
|
|||
info->xmit_head &= SERIAL_XMIT_SIZE - 1;
|
||||
info->xmit_cnt++;
|
||||
spin_unlock_irqrestore(&info->slock, flags);
|
||||
if (!tty->flow.stopped) {
|
||||
if (!tty->hw_stopped ||
|
||||
(info->type == PORT_16550A) ||
|
||||
info->board->must_hwid) {
|
||||
spin_lock_irqsave(&info->slock, flags);
|
||||
outb(info->IER & ~UART_IER_THRI, info->ioaddr + UART_IER);
|
||||
info->IER |= UART_IER_THRI;
|
||||
outb(info->IER, info->ioaddr + UART_IER);
|
||||
spin_unlock_irqrestore(&info->slock, flags);
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче