vt: keyboard, use tty_insert_flip_string in puts_queue
authorJiri Slaby <jslaby@suse.cz>
Thu, 29 Oct 2020 11:32:22 +0000 (12:32 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Nov 2020 15:43:39 +0000 (16:43 +0100)
'puts_queue' currently loops over characters and employs the full tty
buffer machinery for every character. Do the buffer allocation only once
and copy all the character at once. This is achieved using
tty_insert_flip_string instead of loop+tty_insert_flip_char.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20201029113222.32640-17-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/vt/keyboard.c

index 149f1791d7ecf1160fbe6c88ee19c0f77e766e7e..56b5e8f8fe885f4efbdd3b30bb6323187e21ed2b 100644 (file)
@@ -324,12 +324,9 @@ static void put_queue(struct vc_data *vc, int ch)
        tty_schedule_flip(&vc->port);
 }
 
-static void puts_queue(struct vc_data *vc, char *cp)
+static void puts_queue(struct vc_data *vc, const char *cp)
 {
-       while (*cp) {
-               tty_insert_flip_char(&vc->port, *cp, 0);
-               cp++;
-       }
+       tty_insert_flip_string(&vc->port, cp, strlen(cp));
        tty_schedule_flip(&vc->port);
 }