On Mon, 28 Nov 2016, Michal Hocko wrote:
> On Sun 27-11-16 00:13:36, Sebastian Andrzej Siewior wrote:
> [...]
> >  static void __init init_cpu_node_state(void)
> >  {
> > -   int cpu;
> > +   int node;
> >  
> > -   for_each_online_cpu(cpu)
> > -           node_set_state(cpu_to_node(cpu), N_CPU);
> > +   for_each_online_node(node)
> > +           node_set_state(node, N_CPU);
> 
> Is this really correct? The point of the original code was to mark only
> those nodes which have at least one CPU. Or am I missing something?

You're right. An online node does not necessarily have an online CPU.

        for_each_online_node(node) {
                if (cpumask_weight(cpumask_of_node(node)) > 0)
                        node_set_state(node, N_CPU);
        }

is probably more correct.

Thanks,

        tglx

Reply via email to