Re: [2.6.20][PATCH] fix mempolicy error check on a system with memory-less-node

Christoph Lameter
2007-02-06T17:27:07Z

On Tue, 6 Feb 2007, KAMEZAWA Hiroyuki wrote:

> This means an access to NULL,here.
> ==
> unsigned slab_node(struct mempolicy *policy)
> {
> case MPOL_BIND:
> /*
> * Follow bind policy behavior and start allocation at the
> * first node.
> */
> return zone_to_nid(policy->v.zonelist->zones[0]);
> }
> ==
> length of this zonelist was 0.
> It seems fixing a NULL access here is also O.K.
> This patch is just an idea.

Hmmm... Remove the node from the node_online_map instead?

> }
> - return nodes_subset(*nodes, node_online_map) ? 0 : -EINVAL;
> + nodes_clear(node_with_memory);
> + for_each_online_node(nd) {
> + if (node_present_pages(nd))
> + node_set(nd, node_with_memory);
> + }
> + return nodes_subset(*nodes, node_with_memory) ? 0 : -EINVAL;
> }

Uhh. No loops here please. If we really need this then we need to have
some sort of set operation here.