When SIGSEGV occurred on a tracee process, a tracee process freezes.

This commit is contained in:
Tomoki Shirasawa
2015-09-01 17:37:56 +09:00
parent 4176c59fd3
commit 9dd224385e

View File

@ -418,13 +418,14 @@ static void page_fault_handler(void *fault_addr, uint64_t reason, void *regs)
info._sifields._sigfault.si_addr = fault_addr; info._sifields._sigfault.si_addr = fault_addr;
set_signal(SIGSEGV, regs, &info); set_signal(SIGSEGV, regs, &info);
} }
preempt_enable();
check_signal(0, regs, 0); check_signal(0, regs, 0);
goto out; goto out;
} }
error = 0; error = 0;
out:
preempt_enable(); preempt_enable();
out:
dkprintf("[%d]page_fault_handler(%p,%lx,%p): (%d)\n", dkprintf("[%d]page_fault_handler(%p,%lx,%p): (%d)\n",
ihk_mc_get_processor_id(), fault_addr, reason, ihk_mc_get_processor_id(), fault_addr, reason,
regs, error); regs, error);