mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 06:31:58 +02:00
serial: 8250: Use @ier bits to determine if Rx is stopped
Commit f19c3f6c81 ("serial: 8250_port: Don't service RX FIFO if
throttled") uses @read_status_mask (bit UART_LSR_DR) to determine
if Rx has been stopped. However, the bit UART_LSR_DR is not
managed properly in @read_status_mask for all Rx stop/start
situations and is therefore not suitable for this purpose.
Use the UART_IER_RLSI and UART_IER_RDI bits in @ier instead, as
this is already common in 8250-variants and drivers.
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Link: https://lore.kernel.org/r/20241216171244.12783-2-john.ogness@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
e95cb63e57
commit
c9f49e3e45
|
|
@ -1931,7 +1931,7 @@ int serial8250_handle_irq(struct uart_port *port, unsigned int iir)
|
|||
*/
|
||||
if (!(status & (UART_LSR_FIFOE | UART_LSR_BRK_ERROR_BITS)) &&
|
||||
(port->status & (UPSTAT_AUTOCTS | UPSTAT_AUTORTS)) &&
|
||||
!(port->read_status_mask & UART_LSR_DR))
|
||||
!(up->ier & (UART_IER_RLSI | UART_IER_RDI)))
|
||||
skip_rx = true;
|
||||
|
||||
if (status & (UART_LSR_DR | UART_LSR_BI) && !skip_rx) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user