diff -u --new-file --exclude-from ../exclude --recursive linux.vanilla/drivers/char/n_tty.c linux.15p6/drivers/char/n_tty.c
--- linux.vanilla/drivers/char/n_tty.c  Wed Oct 20 01:12:35 1999
+++ linux.15p6/drivers/char/n_tty.c     Wed Jan 26 23:20:23 2000
@@ -1094,7 +1094,9 @@
                               nr -= num;
                               if (nr == 0)
                                       break;
+                               current->state = TASK_RUNNING;
                               get_user(c, b);
+                               current->state = TASK_INTERRUPTIBLE;
                               if (opost(c, tty) < 0)
                                       break;
                               b++; nr--;
@@ -1102,7 +1104,9 @@
                       if (tty->driver.flush_chars)
                               tty->driver.flush_chars(tty);
               } else {
+                       current->state = TASK_RUNNING;
                       c = tty->driver.write(tty, 1, b, nr);
+                       current->state = TASK_INTERRUPTIBLE;
                       if (c < 0) {
                               retval = c;
                               goto break_out;
diff -u --new-file --exclude-from ../exclude --recursive linux.vanilla/drivers/char/random.c linux.15p6/drivers/char/random.c
--- linux.vanilla/drivers/char/random.c Wed Oct 20 01:12:35 1999
+++ linux.15p6/drivers/char/random.c    Wed Jan 12 01:14:43 2000
@@ -1328,6 +1328,7 @@
                       schedule();
                       continue;
               }
+               current->state = TASK_RUNNING;
               n = extract_entropy(&random_state, buf, n, 1);
               if (n < 0) {
                       retval = n;