[v3,06/11] kgdb: Prevent infinite recursive entries to the debugger

Message ID 20200428141218.v3.6.I89de39f68736c9de610e6f241e68d8dbc44bc266@changeid
State New
Headers show
Series
  • [v3,01/11] kgdb: Disable WARN_CONSOLE_UNLOCKED for all kgdb
Related show

Commit Message

Doug Anderson April 28, 2020, 9:13 p.m.
If we detect that we recursively entered the debugger we should hack
our I/O ops to NULL so that the panic() in the next line won't
actually cause another recursion into the debugger.  The first line of
kgdb_panic() will check this and return.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
---

Changes in v3:
- ("kgdb: Prevent infinite recursive entries to the debugger") new for v3.

Changes in v2: None

 kernel/debug/debug_core.c | 1 +
 1 file changed, 1 insertion(+)

Patch

diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
index 503c1630ca76..faf5bd4c34ee 100644
--- a/kernel/debug/debug_core.c
+++ b/kernel/debug/debug_core.c
@@ -532,6 +532,7 @@  static int kgdb_reenter_check(struct kgdb_state *ks)
 
 	if (exception_level > 1) {
 		dump_stack();
+		kgdb_io_module_registered = false;
 		panic("Recursive entry to debugger");
 	}