+++ drivers/char/serial.c Thu Feb 1 17:13:08 2001 @@ -385,9 +385,12 @@ icount = &info->state->icount; do { + if (tty->flip.count >= TTY_FLIPBUF_SIZE) { + tty->flip.tqueue.routine((void *) tty); + if (tty->flip.count >= TTY_FLIPBUF_SIZE) + return; // if TTY_DONT_FLIP is set. + } ch = serial_inp(info, UART_RX); - if (tty->flip.count >= TTY_FLIPBUF_SIZE) - break; *tty->flip.char_buf_ptr = ch; icount->rx++;