--- 2.4.14/drivers/char/tty_io.c.orig Thu Dec 6 00:07:23 2001 +++ 2.4.14/drivers/char/tty_io.c Thu Dec 6 00:09:41 2001 @@ -697,8 +697,13 @@ { ssize_t ret = 0, written = 0; - if (down_interruptible(&tty->atomic_write)) { - return -ERESTARTSYS; + if (file->f_flags & O_NONBLOCK) { + if (down_trylock(&tty->atomic_write)) + return -EAGAIN; + } + else { + if (down_interruptible(&tty->atomic_write)) + return -ERESTARTSYS; } if ( test_bit(TTY_NO_WRITE_SPLIT, &tty->flags) ) { lock_kernel();