From 25e02ba60f0fbe65ba07553b5b2b8867726273c4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ilpo=20J=C3=A4rvinen?= Date: Tue, 26 Apr 2022 17:49:33 +0300 Subject: [PATCH] tty: Rework receive flow control char logic MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Link: https://lore.kernel.org/r/20220426144935.54893-2-ilpo.jarvinen@linux.intel.com Signed-off-by: Greg Kroah-Hartman --- drivers/tty/n_tty.c | 16 +++++++++++----- 1 file 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) -- 2.50.1