2008-07-17 15:09:14

by Paul Fulghum

[permalink] [raw]
Subject: [PATCH] make n_hdlc honor O_NONBLOCK on write

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);