kgdb: Make "kgdbcon" work properly with "kgdb_earlycon"
[ Upstream commit b18b099e04f450cdc77bec72acefcde7042bd1f3 ] 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. Signed-off-by: Douglas Anderson <dianders@chromium.org> Link: https://lore.kernel.org/r/20200630151422.1.I4aa062751ff5e281f5116655c976dff545c09a46@changeid Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
d3380de483
commit
cbc03dedec
1 changed files with 14 additions and 8 deletions
|
@ -95,14 +95,6 @@ int dbg_switch_cpu;
|
||||||
/* Use kdb or gdbserver mode */
|
/* Use kdb or gdbserver mode */
|
||||||
int dbg_kdb_mode = 1;
|
int dbg_kdb_mode = 1;
|
||||||
|
|
||||||
static int __init opt_kgdb_con(char *str)
|
|
||||||
{
|
|
||||||
kgdb_use_con = 1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
early_param("kgdbcon", opt_kgdb_con);
|
|
||||||
|
|
||||||
module_param(kgdb_use_con, int, 0644);
|
module_param(kgdb_use_con, int, 0644);
|
||||||
module_param(kgdbreboot, int, 0644);
|
module_param(kgdbreboot, int, 0644);
|
||||||
|
|
||||||
|
@ -820,6 +812,20 @@ static struct console kgdbcons = {
|
||||||
.index = -1,
|
.index = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int __init opt_kgdb_con(char *str)
|
||||||
|
{
|
||||||
|
kgdb_use_con = 1;
|
||||||
|
|
||||||
|
if (kgdb_io_module_registered && !kgdb_con_registered) {
|
||||||
|
register_console(&kgdbcons);
|
||||||
|
kgdb_con_registered = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
early_param("kgdbcon", opt_kgdb_con);
|
||||||
|
|
||||||
#ifdef CONFIG_MAGIC_SYSRQ
|
#ifdef CONFIG_MAGIC_SYSRQ
|
||||||
static void sysrq_handle_dbg(int key)
|
static void sysrq_handle_dbg(int key)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue