diff -r -u serial-5.05/serial.c sernew-5.05/serial.c --- serial-5.05/serial.c Thu Sep 14 18:40:26 2000 +++ sernew-5.05/serial.c Tue Oct 10 14:28:08 2000 @@ -565,7 +565,7 @@ icount = &info->state->icount; do { ch = serial_inp(info, UART_RX); - if (tty->flip.count >= TTY_FLIPBUF_SIZE) + if (tty->flip.count >= tty->flip.flipbuf_size) goto ignore_char; *tty->flip.char_buf_ptr = ch; icount->rx++; @@ -645,7 +645,7 @@ tty->flip.count++; } if ((*status & UART_LSR_OE) && - (tty->flip.count < TTY_FLIPBUF_SIZE)) { + (tty->flip.count < tty->flip.flipbuf_size)) { /* * Overrun is special, since it's reported * immediately, and doesn't affect the current @@ -5171,7 +5171,8 @@ serial_driver.init_termios = tty_std_termios; serial_driver.init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL; - serial_driver.flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS; + serial_driver.flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS | TTY_DRIVER_SPECIAL_FLIPSIZE; + serial_driver.flip_size = 15000; /* use 60004 bytes */ serial_driver.refcount = &serial_refcount; serial_driver.table = serial_table; serial_driver.termios = serial_termios;