On Mon, Feb 20, 2006 at 01:09:12PM +0100, Rojhalat Ibrahim wrote: > I tracked this one down to 88a2a4ac6b671a4b0dd5d2d762418904c05f4104 > (percpu data: only iterate over possible CPUs). I don't know if this > is the correct way to fix this, but the following patch makes the > problem go away for me. > > --- a/kernel/sched.c > +++ b/kernel/sched.c > @@ -6021,7 +6021,7 @@ void __init sched_init(void) > runqueue_t *rq; > int i, j, k; > > - for_each_cpu(i) { > + for (i = 0; i < NR_CPUS; i++) { > prio_array_t *array; > > rq = cpu_rq(i); > > Any other suggestions, how to fix this? Almost certainly wrong - like almost any loop iterating over 0..NR_CPUS. I'm looking into this now. Part of what is blowing up is this piece of legacy code #define cpu_possible_map phys_cpu_present_map in include/asm-mips/smp.h. Time to clean that and I fear it's not going to be pretty ... Ralf