Make n_hdlc line discipline honor the O_NONBLOCK
file flag on write.
Signed-off-by: Paul Fulghum <[email protected]>
--- a/drivers/char/n_hdlc.c 2008-07-17 08:39:15.000000000 -0500
+++ b/drivers/char/n_hdlc.c 2008-07-17 08:43:58.000000000 -0500
@@ -677,6 +677,10 @@ static ssize_t n_hdlc_tty_write(struct t
/* Allocate transmit buffer */
/* sleep until transmit buffer available */
while (!(tbuf = n_hdlc_buf_get(&n_hdlc->tx_free_buf_list))) {
+ if (file->f_flags & O_NONBLOCK) {
+ error = -EAGAIN;
+ break;
+ }
schedule();
n_hdlc = tty2n_hdlc (tty);