wrong send signal to sender process when kill other process group (LTP kill10)
refs #404
This commit is contained in:
@@ -700,22 +700,23 @@ do_kill(int pid, int tid, int sig, siginfo_t *info, int ptracecont)
|
|||||||
v = get_cpu_local_var(i);
|
v = get_cpu_local_var(i);
|
||||||
irqstate = ihk_mc_spinlock_lock(&(v->runq_lock));
|
irqstate = ihk_mc_spinlock_lock(&(v->runq_lock));
|
||||||
list_for_each_entry(p, &(v->runq), sched_list){
|
list_for_each_entry(p, &(v->runq), sched_list){
|
||||||
|
int j;
|
||||||
|
|
||||||
if(p->ftn->pid <= 0)
|
if(p->ftn->pid <= 0)
|
||||||
continue;
|
continue;
|
||||||
|
if(pgid != 1 && p->ftn->pgid != pgid)
|
||||||
|
continue;
|
||||||
if(proc && p->ftn->pid == proc->ftn->pid){
|
if(proc && p->ftn->pid == proc->ftn->pid){
|
||||||
sendme = 1;
|
sendme = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(pgid == 1 || p->ftn->pgid == pgid){
|
|
||||||
int j;
|
|
||||||
|
|
||||||
for(j = 0; j < n; j++)
|
for(j = 0; j < n; j++)
|
||||||
if(pids[j] == p->ftn->pid)
|
if(pids[j] == p->ftn->pid)
|
||||||
break;
|
break;
|
||||||
if(j == n){
|
if(j == n){
|
||||||
pids[n] = p->ftn->pid;
|
pids[n] = p->ftn->pid;
|
||||||
n++;
|
n++;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ihk_mc_spinlock_unlock(&(v->runq_lock), irqstate);
|
ihk_mc_spinlock_unlock(&(v->runq_lock), irqstate);
|
||||||
|
|||||||
Reference in New Issue
Block a user