aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Slaby <jirislaby@gmail.com>2007-07-16 02:40:12 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 12:05:43 -0400
commitb0fed3140f57c435d2783b698c5090f325c22bad (patch)
treee77a18c79193461aa217bd62f9c03406c74ec612
parentc2aef333c98b41eeb0f0d55b7faa7d4625a6160b (diff)
Char: n_hdlc, allow RESTARTSYS retval of tty write
Acked-by: Paul Fulghum <paulkf@microgate.com> Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/char/n_hdlc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/char/n_hdlc.c b/drivers/char/n_hdlc.c
index 37f7d3403040..e8332f305d72 100644
--- a/drivers/char/n_hdlc.c
+++ b/drivers/char/n_hdlc.c
@@ -400,7 +400,12 @@ static void n_hdlc_send_frames(struct n_hdlc *n_hdlc, struct tty_struct *tty)
400 /* Send the next block of data to device */ 400 /* Send the next block of data to device */
401 tty->flags |= (1 << TTY_DO_WRITE_WAKEUP); 401 tty->flags |= (1 << TTY_DO_WRITE_WAKEUP);
402 actual = tty->driver->write(tty, tbuf->buf, tbuf->count); 402 actual = tty->driver->write(tty, tbuf->buf, tbuf->count);
403 403
404 /* rollback was possible and has been done */
405 if (actual == -ERESTARTSYS) {
406 n_hdlc->tbuf = tbuf;
407 break;
408 }
404 /* if transmit error, throw frame away by */ 409 /* if transmit error, throw frame away by */
405 /* pretending it was accepted by driver */ 410 /* pretending it was accepted by driver */
406 if (actual < 0) 411 if (actual < 0)