]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
tty: serial: kgdboc: use srcu console list iterator
authorJohn Ogness <john.ogness@linutronix.de>
Wed, 16 Nov 2022 16:21:47 +0000 (17:27 +0106)
committerPetr Mladek <pmladek@suse.com>
Fri, 2 Dec 2022 10:25:02 +0000 (11:25 +0100)
Use srcu console list iteration for safe console list traversal.
Note that this is a preparatory change for when console_lock no
longer provides synchronization for the console list.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20221116162152.193147-36-john.ogness@linutronix.de
drivers/tty/serial/kgdboc.c

index 5be381003e585eb609816cdef29e041718a10c6b..c6df9ef34099023683aaffbe8bcf6dba8a3b630b 100644 (file)
@@ -451,6 +451,7 @@ static void kgdboc_earlycon_pre_exp_handler(void)
 {
        struct console *con;
        static bool already_warned;
+       int cookie;
 
        if (already_warned)
                return;
@@ -463,9 +464,14 @@ static void kgdboc_earlycon_pre_exp_handler(void)
         * serial drivers might be OK with this, print a warning once per
         * boot if we detect this case.
         */
-       for_each_console(con)
+       cookie = console_srcu_read_lock();
+       for_each_console_srcu(con) {
                if (con == kgdboc_earlycon_io_ops.cons)
-                       return;
+                       break;
+       }
+       console_srcu_read_unlock(cookie);
+       if (con)
+               return;
 
        already_warned = true;
        pr_warn("kgdboc_earlycon is still using bootconsole\n");