Commit 6d906340 authored by Jason Wessel's avatar Jason Wessel

debug_core,kdb: Allow the debug core to process a recursive debug entry

This allows kdb to debug a crash with in the kms code with a
single level recursive re-entry.
Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
parent d37d39ae
...@@ -445,6 +445,10 @@ static int kgdb_reenter_check(struct kgdb_state *ks) ...@@ -445,6 +445,10 @@ static int kgdb_reenter_check(struct kgdb_state *ks)
} }
printk(KERN_CRIT "KGDB: re-enter exception: ALL breakpoints killed\n"); printk(KERN_CRIT "KGDB: re-enter exception: ALL breakpoints killed\n");
#ifdef CONFIG_KGDB_KDB
/* Allow kdb to debug itself one level */
return 0;
#endif
dump_stack(); dump_stack();
panic("Recursive entry to debugger"); panic("Recursive entry to debugger");
...@@ -489,6 +493,9 @@ static int kgdb_cpu_enter(struct kgdb_state *ks, struct pt_regs *regs) ...@@ -489,6 +493,9 @@ static int kgdb_cpu_enter(struct kgdb_state *ks, struct pt_regs *regs)
*/ */
atomic_inc(&cpu_in_kgdb[cpu]); atomic_inc(&cpu_in_kgdb[cpu]);
if (exception_level == 1)
goto cpu_master_loop;
/* /*
* CPU will loop if it is a slave or request to become a kgdb * CPU will loop if it is a slave or request to become a kgdb
* master cpu and acquire the kgdb_active lock: * master cpu and acquire the kgdb_active lock:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment