From: "Paul E. McKenney" Bug in attach_pid() can result in RCU readers in find_pid() getting confused if they race with process creation. Signed-off-by: Acked-by: William Irwin Acked-by: Ingo Molnar Signed-off-by: Andrew Morton --- kernel/pid.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN kernel/pid.c~rcu-signal-handling-fix-in-attach_pid kernel/pid.c --- devel/kernel/pid.c~rcu-signal-handling-fix-in-attach_pid 2005-11-09 20:17:32.000000000 -0800 +++ devel-akpm/kernel/pid.c 2005-11-09 20:17:32.000000000 -0800 @@ -150,6 +150,7 @@ int fastcall attach_pid(task_t *task, en task_pid = &task->pids[type]; pid = find_pid(type, nr); + task_pid->nr = nr; if (pid == NULL) { INIT_LIST_HEAD(&task_pid->pid_list); hlist_add_head_rcu(&task_pid->pid_chain, @@ -158,7 +159,6 @@ int fastcall attach_pid(task_t *task, en INIT_HLIST_NODE(&task_pid->pid_chain); list_add_tail_rcu(&task_pid->pid_list, &pid->pid_list); } - task_pid->nr = nr; return 0; } _