Skip to content
This repository has been archived by the owner on Aug 27, 2022. It is now read-only.

Commit

Permalink
serial: kgdb_nmi: Improve console integration with KDB I/O
Browse files Browse the repository at this point in the history
kgdb_nmi_tty_enabled is used for two unrelated purposes, namely to
suppress normal TTY input handling and to suppress console output
(although it has no effect at all on TTY output). A much better way to
handle muting the console is to not have to mute it in the first place!
That's what this patch does.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
daniel-thompson authored and gregkh committed May 29, 2014
1 parent 8a0ff60 commit bd71a1c
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions drivers/tty/serial/kgdb_nmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,22 @@ MODULE_PARM_DESC(magic, "magic sequence to enter NMI debugger (default $3#33)");

static bool kgdb_nmi_tty_enabled;

static int kgdb_nmi_console_setup(struct console *co, char *options)
{
/* The NMI console uses the dbg_io_ops to issue console messages. To
* avoid duplicate messages during kdb sessions we must inform kdb's
* I/O utilities that messages sent to the console will automatically
* be displayed on the dbg_io.
*/
dbg_io_ops->is_console = true;

return 0;
}

static void kgdb_nmi_console_write(struct console *co, const char *s, uint c)
{
int i;

if (!kgdb_nmi_tty_enabled || atomic_read(&kgdb_active) >= 0)
return;

for (i = 0; i < c; i++)
dbg_io_ops->write_char(s[i]);
}
Expand All @@ -65,6 +74,7 @@ static struct tty_driver *kgdb_nmi_console_device(struct console *co, int *idx)

static struct console kgdb_nmi_console = {
.name = "ttyNMI",
.setup = kgdb_nmi_console_setup,
.write = kgdb_nmi_console_write,
.device = kgdb_nmi_console_device,
.flags = CON_PRINTBUFFER | CON_ANYTIME | CON_ENABLED,
Expand Down

0 comments on commit bd71a1c

Please sign in to comment.