DECLARE_BITMAP(read_flags, N_TTY_BUF_SIZE);
        unsigned char echo_buf[N_TTY_BUF_SIZE];
 
-       int minimum_to_wake;
-
        /* consumer-published */
        size_t read_tail;
        size_t line_start;
        /* publish read_head to consumer */
        smp_store_release(&ldata->commit_head, ldata->read_head);
 
-       if ((read_cnt(ldata) >= ldata->minimum_to_wake) || L_EXTPROC(tty)) {
+       if (read_cnt(ldata)) {
                kill_fasync(&tty->fasync, SIGIO, POLL_IN);
                wake_up_interruptible_poll(&tty->read_wait, POLLIN);
        }
        reset_buffer_flags(tty->disc_data);
        ldata->column = 0;
        ldata->canon_column = 0;
-       ldata->minimum_to_wake = 1;
        ldata->num_overrun = 0;
        ldata->no_room = 0;
        ldata->lnext = 0;
                minimum = MIN_CHAR(tty);
                if (minimum) {
                        time = (HZ / 10) * TIME_CHAR(tty);
-                       if (time)
-                               ldata->minimum_to_wake = 1;
-                       else if (!waitqueue_active(&tty->read_wait) ||
-                                (ldata->minimum_to_wake > minimum))
-                               ldata->minimum_to_wake = minimum;
                } else {
                        timeout = (HZ / 10) * TIME_CHAR(tty);
-                       ldata->minimum_to_wake = minimum = 1;
+                       minimum = 1;
                }
        }
 
                        break;
                }
 
-               if (((minimum - (b - buf)) < ldata->minimum_to_wake) &&
-                   ((minimum - (b - buf)) >= 1))
-                       ldata->minimum_to_wake = (minimum - (b - buf));
-
                done = check_other_done(tty);
 
                if (!input_available_p(tty, 0)) {
        up_read(&tty->termios_rwsem);
 
        remove_wait_queue(&tty->read_wait, &wait);
-       if (!waitqueue_active(&tty->read_wait))
-               ldata->minimum_to_wake = minimum;
-
        mutex_unlock(&ldata->atomic_read_lock);
 
        if (b - buf)
 static unsigned int n_tty_poll(struct tty_struct *tty, struct file *file,
                                                        poll_table *wait)
 {
-       struct n_tty_data *ldata = tty->disc_data;
        unsigned int mask = 0;
 
        poll_wait(file, &tty->read_wait, wait);
                mask |= POLLPRI | POLLIN | POLLRDNORM;
        if (tty_hung_up_p(file))
                mask |= POLLHUP;
-       if (!(mask & (POLLHUP | POLLIN | POLLRDNORM))) {
-               if (MIN_CHAR(tty) && !TIME_CHAR(tty))
-                       ldata->minimum_to_wake = MIN_CHAR(tty);
-               else
-                       ldata->minimum_to_wake = 1;
-       }
        if (tty->ops->write && !tty_is_writelocked(tty) &&
                        tty_chars_in_buffer(tty) < WAKEUP_CHARS &&
                        tty_write_room(tty) > 0)
 
 static void n_tty_fasync(struct tty_struct *tty, int on)
 {
-       struct n_tty_data *ldata = tty->disc_data;
-
-       if (!waitqueue_active(&tty->read_wait)) {
-               if (on)
-                       ldata->minimum_to_wake = 1;
-               else if (!tty->fasync)
-                       ldata->minimum_to_wake = N_TTY_BUF_SIZE;
-       }
 }
 
 static struct tty_ldisc_ops n_tty_ops = {