diff options
author | Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> | 2022-04-26 17:49:33 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-05-19 18:33:34 +0200 |
commit | 25e02ba60f0fbe65ba07553b5b2b8867726273c4 (patch) | |
tree | 3906bbbc82f108be1a5a7e2d37da234c2a1f0002 | |
parent | ef44c6c1e86fa89f20d27713d7268d7c7689af5c (diff) | |
download | lwn-25e02ba60f0fbe65ba07553b5b2b8867726273c4.tar.gz lwn-25e02ba60f0fbe65ba07553b5b2b8867726273c4.zip |
tty: Rework receive flow control char logic
Add a helper to check if the character is a flow control one. This
rework prepares for adding lookahead done check cleanly to
n_tty_receive_char_flow_ctrl() between n_tty_is_char_flow_ctrl() and
the actions taken on the flow control characters.
No functional changes intended.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Link: https://lore.kernel.org/r/20220426144935.54893-2-ilpo.jarvinen@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/tty/n_tty.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c index 88af1cdd2fd1..640c9e871044 100644 --- a/drivers/tty/n_tty.c +++ b/drivers/tty/n_tty.c @@ -1220,20 +1220,26 @@ n_tty_receive_signal_char(struct tty_struct *tty, int signal, unsigned char c) process_echoes(tty); } +static bool n_tty_is_char_flow_ctrl(struct tty_struct *tty, unsigned char c) +{ + return c == START_CHAR(tty) || c == STOP_CHAR(tty); +} + /* Returns true if c is consumed as flow-control character */ static bool n_tty_receive_char_flow_ctrl(struct tty_struct *tty, unsigned char c) { + if (!n_tty_is_char_flow_ctrl(tty, c)) + return false; + if (c == START_CHAR(tty)) { start_tty(tty); process_echoes(tty); return true; } - if (c == STOP_CHAR(tty)) { - stop_tty(tty); - return true; - } - return false; + /* STOP_CHAR */ + stop_tty(tty); + return true; } static void n_tty_receive_char_special(struct tty_struct *tty, unsigned char c) |