aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/n_tty.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/n_tty.c')
-rw-r--r--drivers/char/n_tty.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/char/n_tty.c b/drivers/char/n_tty.c
index 3922a084205e..f6f0e4ec2b51 100644
--- a/drivers/char/n_tty.c
+++ b/drivers/char/n_tty.c
@@ -1352,10 +1352,8 @@ static void n_tty_write_wakeup(struct tty_struct *tty)
1352 /* Write out any echoed characters that are still pending */ 1352 /* Write out any echoed characters that are still pending */
1353 process_echoes(tty); 1353 process_echoes(tty);
1354 1354
1355 if (tty->fasync) { 1355 if (tty->fasync && test_and_clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags))
1356 set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);
1357 kill_fasync(&tty->fasync, SIGIO, POLL_OUT); 1356 kill_fasync(&tty->fasync, SIGIO, POLL_OUT);
1358 }
1359} 1357}
1360 1358
1361/** 1359/**
@@ -2014,6 +2012,8 @@ static ssize_t n_tty_write(struct tty_struct *tty, struct file *file,
2014break_out: 2012break_out:
2015 __set_current_state(TASK_RUNNING); 2013 __set_current_state(TASK_RUNNING);
2016 remove_wait_queue(&tty->write_wait, &wait); 2014 remove_wait_queue(&tty->write_wait, &wait);
2015 if (b - buf != nr && tty->fasync)
2016 set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);
2017 return (b - buf) ? b - buf : retval; 2017 return (b - buf) ? b - buf : retval;
2018} 2018}
2019 2019