the attached patch (against BK-curr) fixes a bug in the new PID allocator,
which bug can cause incorrect hashing of the PID structure which causes
infinite loops in find_pid(). [and potentially other problems.]
Ingo
--- linux/kernel/pid.c.orig Fri Sep 20 11:01:52 2002
+++ linux/kernel/pid.c Fri Sep 20 11:03:05 2002
@@ -161,8 +161,8 @@
pid->nr = nr;
atomic_set(&pid->count, 1);
INIT_LIST_HEAD(&pid->task_list);
- pid->task = current;
- get_task_struct(current);
+ pid->task = task;
+ get_task_struct(task);
list_add(&pid->hash_chain, &pid_hash[type][pid_hashfn(nr)]);
}
list_add(&task->pids[type].pid_chain, &pid->task_list);
> the attached patch (against BK-curr) fixes a bug in the new PID
> allocator, which bug can cause incorrect hashing of the PID structure
> which causes infinite loops in find_pid(). [and potentially other
> problems.]
the patch is also a small speedup :-)
Ingo
> the attached patch (against BK-curr) fixes a bug in the new PID allocator,
> which bug can cause incorrect hashing of the PID structure which causes
> infinite loops in find_pid(). [and potentially other problems.]
Thanks Ingo,
I havent been able to lock up current BK yet with this patch. I'll continue
to hit it with SDET overnight.
Anton