aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Fulghum <paulkf@microgate.com>2008-07-22 06:21:19 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-22 16:03:28 -0400
commitc72f527c104cae8e767e714574238b5550879e0c (patch)
treef89edb1543e72d73ebeccf9bbb9aec0592d52ec9
parent768aec0b5bccbd460bcf6e9131f19b5a26f3862d (diff)
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 <paulkf@microgate.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/char/n_hdlc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/char/n_hdlc.c b/drivers/char/n_hdlc.c
index ed4e03333ab4..69ec6399c714 100644
--- a/drivers/char/n_hdlc.c
+++ b/drivers/char/n_hdlc.c
@@ -677,6 +677,10 @@ static ssize_t n_hdlc_tty_write(struct tty_struct *tty, struct file *file,
677 /* Allocate transmit buffer */ 677 /* Allocate transmit buffer */
678 /* sleep until transmit buffer available */ 678 /* sleep until transmit buffer available */
679 while (!(tbuf = n_hdlc_buf_get(&n_hdlc->tx_free_buf_list))) { 679 while (!(tbuf = n_hdlc_buf_get(&n_hdlc->tx_free_buf_list))) {
680 if (file->f_flags & O_NONBLOCK) {
681 error = -EAGAIN;
682 break;
683 }
680 schedule(); 684 schedule();
681 685
682 n_hdlc = tty2n_hdlc (tty); 686 n_hdlc = tty2n_hdlc (tty);