linux/kernel/debug
Dongdong Deng c1bb9a9c19 debug_core: disable hw_breakpoints on all cores in kgdb_cpu_enter()
The slave cpus do not have the hw breakpoints disabled upon entry to
the debug_core and as a result could cause unrecoverable recursive
faults on badly placed breakpoints, or get out of sync with the arch
specific hw breakpoint operations.

This patch addresses the problem by invoking kgdb_disable_hw_debug()
earlier in kgdb_enter_cpu for each cpu that enters the debug core.

The hw breakpoint dis/enable flow should be:

master_debug_cpu   slave_debug_cpu
         \              /
          kgdb_cpu_enter
                |
        kgdb_disable_hw_debug --> uninstall pre-enabled hw_breakpoint
                |
 do add/rm dis/enable operates to hw_breakpoints on master_debug_cpu..
                |
        correct_hw_break --> correct/install the enabled hw_breakpoint
                |
           leave_kgdb

Signed-off-by: Dongdong Deng <dongdong.deng@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
2010-10-22 15:34:12 -05:00
..
kdb kdb,kgdb: fix sparse fixups 2010-10-22 15:34:12 -05:00
Makefile kdb: core for kgdb back end (1 of 2) 2010-05-20 21:04:20 -05:00
debug_core.c debug_core: disable hw_breakpoints on all cores in kgdb_cpu_enter() 2010-10-22 15:34:12 -05:00
debug_core.h kgdb: gdb "monitor" -> kdb passthrough 2010-05-20 21:04:24 -05:00
gdbstub.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb 2010-08-05 15:59:48 -07:00