Skip to content

Commit

Permalink
n_tty: Eliminate char tests from IXANY restart test
Browse files Browse the repository at this point in the history
Relocate the IXANY restart tty test to code paths where the
the received char is not START_CHAR, STOP_CHAR, INTR_CHAR,
QUIT_CHAR or SUSP_CHAR.

Fixes the condition when ISIG if off and one of INTR_CHAR,
QUIT_CHAR or SUSP_CHAR does not restart i/o.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Peter Hurley authored and Greg Kroah-Hartman committed Jul 24, 2013
1 parent 7d88d63 commit 855df3c
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions drivers/tty/n_tty.c
Original file line number Diff line number Diff line change
Expand Up @@ -1270,13 +1270,6 @@ static inline void n_tty_receive_char(struct tty_struct *tty, unsigned char c)
return;
}

if (tty->stopped && !tty->flow_stopped && I_IXON(tty) &&
I_IXANY(tty) && c != START_CHAR(tty) && c != STOP_CHAR(tty) &&
c != INTR_CHAR(tty) && c != QUIT_CHAR(tty) && c != SUSP_CHAR(tty)) {
start_tty(tty);
process_echoes(tty);
}

/*
* If the previous character was LNEXT, or we know that this
* character is not one of the characters that we'll have to
Expand All @@ -1285,6 +1278,13 @@ static inline void n_tty_receive_char(struct tty_struct *tty, unsigned char c)
*/
if (!test_bit(c, ldata->char_map) || ldata->lnext) {
ldata->lnext = 0;

if (tty->stopped && !tty->flow_stopped && I_IXON(tty) &&
I_IXANY(tty)) {
start_tty(tty);
process_echoes(tty);
}

parmrk = (c == (unsigned char) '\377' && I_PARMRK(tty)) ? 1 : 0;
if (read_cnt(ldata) >= (N_TTY_BUF_SIZE - parmrk - 1)) {
/* beep if no space */
Expand Down Expand Up @@ -1331,6 +1331,11 @@ static inline void n_tty_receive_char(struct tty_struct *tty, unsigned char c)
}
}

if (tty->stopped && !tty->flow_stopped && I_IXON(tty) && I_IXANY(tty)) {
start_tty(tty);
process_echoes(tty);
}

if (c == '\r') {
if (I_IGNCR(tty))
return;
Expand Down

0 comments on commit 855df3c

Please sign in to comment.