|
@@ -1478,16 +1478,17 @@ static void serial8250_read_char(struct uart_8250_port *up, unsigned char lsr)
|
|
|
* value, and returns the remaining LSR bits not handled
|
|
|
* by this Rx routine.
|
|
|
*/
|
|
|
-unsigned char
|
|
|
-serial8250_rx_chars(struct uart_8250_port *up, unsigned char lsr)
|
|
|
+unsigned char serial8250_rx_chars(struct uart_8250_port *up, unsigned char lsr)
|
|
|
{
|
|
|
struct uart_port *port = &up->port;
|
|
|
int max_count = 256;
|
|
|
|
|
|
do {
|
|
|
serial8250_read_char(up, lsr);
|
|
|
+ if (--max_count == 0)
|
|
|
+ break;
|
|
|
lsr = serial_in(up, UART_LSR);
|
|
|
- } while ((lsr & (UART_LSR_DR | UART_LSR_BI)) && (--max_count > 0));
|
|
|
+ } while (lsr & (UART_LSR_DR | UART_LSR_BI));
|
|
|
spin_unlock(&port->lock);
|
|
|
tty_flip_buffer_push(&port->state->port);
|
|
|
spin_lock(&port->lock);
|