change to throw signal SIGILL to SIGSEGV when GPE

This commit is contained in:
Tomoki Shirasawa
2015-02-18 14:54:49 +09:00
parent c0edb6fe6f
commit 3b04043f2a
2 changed files with 49 additions and 12 deletions

View File

@@ -684,10 +684,17 @@ do_kill(int pid, int tid, int sig, siginfo_t *info, int ptracecont)
int doint;
ihk_spinlock_t *savelock = NULL;
int found = 0;
siginfo_t info0;
if(sig > 64 || sig < 0)
return -EINVAL;
if(info == NULL){
memset(&info0, '\0', sizeof info0);
info = &info0;
info0.si_signo = sig;
}
if(tid == -1 && pid <= 0){
int pgid = -pid;
int rc = -ESRCH;
@@ -935,6 +942,5 @@ set_signal(int sig, void *regs0, siginfo_t *info)
coredump(proc, regs0);
terminate(0, sig | 0x80, (ihk_mc_user_context_t *)regs->rsp);
}
else
do_kill(proc->ftn->pid, proc->ftn->tid, sig, info, 0);
}