diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index a07442ffefbdf..0ede0ee64243f 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c @@ -2232,9 +2232,10 @@ static inline void wait_for_xmitr(struct uart_8250_port *up, int bits) /* Wait up to 1s for flow control if necessary */ if (up->port.flags & UPF_CONS_FLOW) { tmout = 1000000; - while (--tmout && - ((serial_in(up, UART_MSR) & UART_MSR_CTS) == 0)) + while (!(serial_in(up, UART_MSR) & UART_MSR_CTS) && --tmout) { udelay(1); + touch_nmi_watchdog(); + } } }