History

kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"

On my system the kernel processes the "kgdb_earlycon" parameter before the "kgdbcon" parameter. When we setup "kgdb_earlycon" we'll end up in kgdb_register_callbacks() and "kgdb_use_con" won't have been set yet so we'll never get around to starting "kgdbcon". Let's remedy this by detecting that the IO module was already registered when setting "kgdb_use_con" and registering the console then. As part of this, to avoid pre-declaring things, move the handling of the "kgdbcon" further down in the file.

Douglas Anderson committed 6 years ago

Commit b18b0991 parent fcdb84c1 file · +14 −8Browse files

Showing the changes to kernel/debug/debug_core.c (1 of 1 file). Show all

Unified · Split

kernel/debug/debug_core.c+14−8
@@ -94,14 +94,6 @@ int dbg_switch_cpu; · 93 unmodified lines
94/* Use kdb or gdbserver mode */94/* Use kdb or gdbserver mode */
95int dbg_kdb_mode = 1;95int dbg_kdb_mode = 1;
96 96
97static int __init opt_kgdb_con(char *str)
98{
99 kgdb_use_con = 1;
100 return 0;
101}
102
103early_param("kgdbcon", opt_kgdb_con);
104
105module_param(kgdb_use_con, int, 0644);97module_param(kgdb_use_con, int, 0644);
106module_param(kgdbreboot, int, 0644);98module_param(kgdbreboot, int, 0644);
107 99
@@ -920,6 +912,20 @@ static struct console kgdbcons = { · 812 unmodified lines
920 .index = -1,912 .index = -1,
921};913};
922 914
915static int __init opt_kgdb_con(char *str)
916{
917 kgdb_use_con = 1;
918
919 if (kgdb_io_module_registered && !kgdb_con_registered) {
920 register_console(&kgdbcons);
921 kgdb_con_registered = 1;
922 }
923
924 return 0;
925}
926
927early_param("kgdbcon", opt_kgdb_con);
928
923#ifdef CONFIG_MAGIC_SYSRQ929#ifdef CONFIG_MAGIC_SYSRQ
924static void sysrq_handle_dbg(int key)930static void sysrq_handle_dbg(int key)
925{931{

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t