serial: kgdboc: Lock console list in probe function
authorThomas Gleixner <tglx@linutronix.de>
Wed, 16 Nov 2022 16:21:13 +0000 (17:27 +0106)
committerPetr Mladek <pmladek@suse.com>
Fri, 2 Dec 2022 10:24:59 +0000 (11:24 +0100)
Unprotected list walks are not necessarily safe.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20221116162152.193147-2-john.ogness@linutronix.de
drivers/tty/serial/kgdboc.c

index 7aa37be..e76f018 100644 (file)
@@ -193,6 +193,7 @@ static int configure_kgdboc(void)
        if (!p)
                goto noconfig;
 
+       console_lock();
        for_each_console(cons) {
                int idx;
                if (cons->device && cons->device(cons, &idx) == p &&
@@ -201,6 +202,7 @@ static int configure_kgdboc(void)
                        break;
                }
        }
+       console_unlock();
 
        kgdb_tty_driver = p;
        kgdb_tty_line = tty_line;