tty: Rework receive flow control char logic
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tue, 26 Apr 2022 14:49:33 +0000 (17:49 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 May 2022 16:33:34 +0000 (18:33 +0200)
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>
drivers/tty/n_tty.c

index 88af1cd..640c9e8 100644 (file)
@@ -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)