Re: linux-next: Tree for June 5

Mike Travis
2008-06-06T15:04:20Z

Ingo Molnar wrote:
> * Vegard Nossum <vegard.nossum@gmail.com> wrote:
>
>>> Thanks, yes I had that some after thought. It should check the node
>>> index if CONFIG_DEBUG_PER_CPU_MAPS is enabled. One gotcha is that
>>> nr_node_ids is intialized to MAX_NUMNODES until
>>> setup_node_to_cpumask_map() sets it to the correct value. So uses
>>> before that should be caught by the earlier check.
>> I think it should always check the node index. The code in
>> kernel/sched.c (see above) calls node_to_cpumask(i) on nodes 0 < i <
>> MAX_NUMNODES and it WILL use invalid pointers. Or should
>> kernel/sched.c be changed to use nr_node_ids instead of MAX_NUMNODES?
>> I believe there are more places that do this than just sched.c.
>>
>> I have attached two patches. The sched one fixes Andrew's boot
>> problem. The x86 one is untested, but I believe it is better to BUG
>> than silently corrupt some arbitrary memory. (Then the callers can be
>> found easily and fixed at least.)
>
> nice fixes! I have applied both of them to -tip, this one to
> tip/sched-devel:
>
>> Subject: [PATCH] sched: don't call node_to_cpumask() on nodes > nr_node_ids
>
> AFAICS this is not yet required for v2.6.26, as the requirement to never
> iterate to MAX_NUMNODES and call nr_cpus_node() with the index only got
> introduced by Mike's patch.
>
> and this one to tip/x86/numa:
>
>> Subject: [PATCH] x86: don't return invalid pointers from node_to_cpumask()
>
> and i've undone the revert of "x86: remove the static 256k
> node_to_cpumask_map" as well.
>
> agreed?
>
> Ingo

Hi Ingo,

My -tip branch has:

a953e4597abd51b74c99e0e3b7074532a60fd031

sched: replace MAX_NUMNODES with nr_node_ids in kernel/sched.c
committed: 2008-05-23 09:22:17

The check for node > nr_node_ids however should be included (at least
when CONFIG_DEBUG_PER_CPU_MAPS is enabled.)

Thanks,
Mike