Re: [patch 6/6] x86: cpumask_of_node() should handle -1 as a node

From: David Rientjes
Date: Wed Jan 06 2010 - 18:01:01 EST


On Wed, 6 Jan 2010, Rusty Russell wrote:

> > pcibus_to_node can return -1 if we cannot determine which node a pci bus
> > is on. If passed -1, cpumask_of_node will negatively index the lookup array
> > and pull in random data:
>
> If you grep for the callers, you'll see those which do this (now-obsolete)
> check. One more patch :)
>

Do we really want to do this? A nid of -1 is undefined, so the result of
cpumask_of_node(-1) should be undefined; there's no formal definition that
a nid of -1 follows the semantics that we use for x86 pci buses, for
example, where it implies no NUMA locality in all cases.

I think a better fix would be to define -1 where appropriate to either be
an invalid node, cpu_all_mask, or whatever in the caller:

mask = (nid != -1) ? cpumask_of_node(nid) : cpu_all_mask;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/