diff options
Diffstat (limited to 'drivers/char/n_hdlc.c')
-rw-r--r-- | drivers/char/n_hdlc.c | 7 |
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) |