kdb: Do not assume write() callback available
authorJohn Ogness <john.ogness@linutronix.de>
Mon, 17 Jul 2023 19:46:01 +0000 (21:52 +0206)
committerPetr Mladek <pmladek@suse.com>
Thu, 20 Jul 2023 11:06:22 +0000 (13:06 +0200)
It is allowed for consoles to not provide a write() callback. For
example ttynull does this.

Check if a write() callback is available before using it.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Daniel Thompson <daniel.thompson@linaro.org>
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20230717194607.145135-2-john.ogness@linutronix.de
kernel/debug/kdb/kdb_io.c

index 5c7e9ba..e9139df 100644 (file)
@@ -576,6 +576,8 @@ static void kdb_msg_write(const char *msg, int msg_len)
                        continue;
                if (c == dbg_io_ops->cons)
                        continue;
+               if (!c->write)
+                       continue;
                /*
                 * Set oops_in_progress to encourage the console drivers to
                 * disregard their internal spin locks: in the current calling