• K.Prasad's avatar
    powerpc, hw_breakpoint: Handle concurrent alignment interrupts · 2538c2d0
    K.Prasad authored
    If an alignment interrupt occurs on an instruction that is being
    single-stepped, the alignment interrupt handler currently handles
    the single-step condition by unconditionally sending a SIGTRAP to
    the process.  Other synchronous interrupts that result in the
    instruction being emulated do likewise.
    
    With hw_breakpoint support, the hw_breakpoint code needs to be able
    to intercept these single-step events as well as those where the
    instruction executes normally and a trace interrupt happens.
    
    Fix this by making emulate_single_step() use the existing
    single_step_exception() function instead of calling _exception()
    directly.  We then make single_step_exception() use the abstracted
    clear_single_step() rather than clearing bits in the MSR image
    directly so that emulate_single_step() will continue to work
    correctly on Book 3E processors.
    Signed-off-by: default avatarK.Prasad <prasad@linux.vnet.ibm.com>
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    2538c2d0
traps.c 39.6 KB