]> git.karo-electronics.de Git - linux-beck.git/commitdiff
n_tty: Factor standard per-char i/o into separate fn
authorPeter Hurley <peter@hurleysoftware.com>
Wed, 24 Jul 2013 12:29:49 +0000 (08:29 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Jul 2013 16:26:51 +0000 (09:26 -0700)
Simplify __receive_buf() into a dispatch function; perform per-char
processing for all other modes not already handled.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/n_tty.c

index 2c120b63429557265f3c652d50097a57f5da8f9f..951ecfeed8d36e9bfc6567a4518a7959496636fd 100644 (file)
@@ -1569,6 +1569,22 @@ n_tty_receive_buf_closing(struct tty_struct *tty, const unsigned char *cp,
        }
 }
 
+static void
+n_tty_receive_buf_standard(struct tty_struct *tty, const unsigned char *cp,
+                          char *fp, int count)
+{
+       char flag = TTY_NORMAL;
+
+       while (count--) {
+               if (fp)
+                       flag = *fp++;
+               if (likely(flag == TTY_NORMAL))
+                       n_tty_receive_char(tty, *cp++);
+               else
+                       n_tty_receive_char_flagged(tty, *cp++, flag);
+       }
+}
+
 static void __receive_buf(struct tty_struct *tty, const unsigned char *cp,
                          char *fp, int count)
 {
@@ -1582,16 +1598,7 @@ static void __receive_buf(struct tty_struct *tty, const unsigned char *cp,
        else if (tty->closing && !L_EXTPROC(tty))
                n_tty_receive_buf_closing(tty, cp, fp, count);
        else {
-               char flag = TTY_NORMAL;
-
-               while (count--) {
-                       if (fp)
-                               flag = *fp++;
-                       if (likely(flag == TTY_NORMAL))
-                               n_tty_receive_char(tty, *cp++);
-                       else
-                               n_tty_receive_char_flagged(tty, *cp++, flag);
-               }
+               n_tty_receive_buf_standard(tty, cp, fp, count);
 
                flush_echoes(tty);
                if (tty->ops->flush_chars)