Immediately following an exit from the kdb shell the kgdb_connected variable should be set to zero, unless there are breakpoints planted. If the kgdb_connected variable is not zeroed out with kdb, it is impossible to turn off kdb. This patch is merely a work around for now, the real fix will check for the breakpoints.
Showing the changes to kernel/debug/debug_core.c (1 of 1 file). Show all
Unified · Split
| @@ -605,13 +605,13 @@ cpu_master_loop: · 604 unmodified lines | ||
| 605 | 605 | if (dbg_kdb_mode) { |
| 606 | 606 | kgdb_connected = 1; |
| 607 | 607 | error = kdb_stub(ks); |
| 608 | + kgdb_connected = 0; | |
| 608 | 609 | } else { |
| 609 | 610 | error = gdb_serial_stub(ks); |
| 610 | 611 | } |
| 611 | 612 | |
| 612 | 613 | if (error == DBG_PASS_EVENT) { |
| 613 | 614 | dbg_kdb_mode = !dbg_kdb_mode; |
| 614 | − kgdb_connected = 0; | |
| 615 | 615 | } else if (error == DBG_SWITCH_CPU_EVENT) { |
| 616 | 616 | dbg_cpu_switch(cpu, dbg_switch_cpu); |
| 617 | 617 | goto cpu_loop; |