• Dongdong Deng's avatar
    debug_core: disable hw_breakpoints on all cores in kgdb_cpu_enter() · c1bb9a9c
    Dongdong Deng authored
    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: default avatarDongdong Deng <dongdong.deng@windriver.com>
    Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
    c1bb9a9c
debug_core.c 23.2 KB