wrong send signal to sender process when kill other process group (LTP kill10)

refs #404
This commit is contained in:
Tomoki Shirasawa
2015-01-29 16:14:31 +09:00
parent bd5f43b119
commit b26fa4e87c

View File

@@ -700,22 +700,23 @@ do_kill(int pid, int tid, int sig, siginfo_t *info, int ptracecont)
v = get_cpu_local_var(i);
irqstate = ihk_mc_spinlock_lock(&(v->runq_lock));
list_for_each_entry(p, &(v->runq), sched_list){
int j;
if(p->ftn->pid <= 0)
continue;
if(pgid != 1 && p->ftn->pgid != pgid)
continue;
if(proc && p->ftn->pid == proc->ftn->pid){
sendme = 1;
continue;
}
if(pgid == 1 || p->ftn->pgid == pgid){
int j;
for(j = 0; j < n; j++)
if(pids[j] == p->ftn->pid)
break;
if(j == n){
pids[n] = p->ftn->pid;
n++;
}
for(j = 0; j < n; j++)
if(pids[j] == p->ftn->pid)
break;
if(j == n){
pids[n] = p->ftn->pid;
n++;
}
}
ihk_mc_spinlock_unlock(&(v->runq_lock), irqstate);