Commit e5164a26 authored by Steven Seeger's avatar Steven Seeger
Browse files

update ipipe trap reporting. add IPIPE_TRAP_DEBUG for proper breakpoint handling.

parent a79b4fc4
......@@ -745,7 +745,7 @@ void machine_check_exception(struct pt_regs *regs)
if (!IS_ENABLED(CONFIG_PPC_BOOK3S_64) || !cpu_has_feature(CPU_FTR_HVMODE))
__this_cpu_inc(irq_stat.mce_exceptions);
if(__ipipe_report_trap(IPIPE_TRAP_MCE, regs)) return;
if(__ipipe_report_trap(IPIPE_TRAP_MCE, regs)) goto bail;
add_taint(TAINT_MACHINE_CHECK, LOCKDEP_NOW_UNRELIABLE);
......@@ -1007,9 +1007,10 @@ void unknown_exception(struct pt_regs *regs)
printk("Bad trap at PC: %lx, SR: %lx, vector=%lx\n",
regs->nip, regs->msr, regs->trap);
if(__ipipe_report_trap(IPIPE_TRAP_UNKNOWN, regs)) return;
if(__ipipe_report_trap(IPIPE_TRAP_UNKNOWN, regs)) goto bail;
_exception(SIGTRAP, regs, TRAP_UNK, 0);
bail:
exception_exit(prev_state);
}
......@@ -1017,7 +1018,7 @@ void instruction_breakpoint_exception(struct pt_regs *regs)
{
enum ctx_state prev_state = exception_enter();
if(__ipipe_report_trap(IPIPE_TRAP_IABR, regs)) return;
if(__ipipe_report_trap(IPIPE_TRAP_IABR, regs)) goto bail;
if (notify_die(DIE_IABR_MATCH, "iabr_match", regs, 5,
5, SIGTRAP) == NOTIFY_STOP)
......@@ -1389,7 +1390,10 @@ void program_check_exception(struct pt_regs *regs)
/* We can now get here via a FP Unavailable exception if the core
* has no FPU, in that case the reason flags will be 0 */
if(__ipipe_report_trap(IPIPE_TRAP_PCE, regs)) return;
if(reason & REASON_TRAP) {
if(__ipipe_report_trap(IPIPE_TRAP_DEBUG, regs)) return;
}
else if(__ipipe_report_trap(IPIPE_TRAP_PCE, regs)) return;
if (reason & REASON_FP) {
/* IEEE FP exception */
......
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