From: Greg Banks cpumask: add highest_possible_node_id(), analogous to highest_possible_processor_id(). Signed-off-by: Greg Banks Signed-off-by: Andrew Morton --- diff -puN include/linux/nodemask.h~cpumask-add-highest_possible_node_id include/linux/nodemask.h --- a/include/linux/nodemask.h~cpumask-add-highest_possible_node_id +++ a/include/linux/nodemask.h @@ -352,6 +352,7 @@ extern nodemask_t node_possible_map; #define node_possible(node) node_isset((node), node_possible_map) #define first_online_node first_node(node_online_map) #define next_online_node(nid) next_node((nid), node_online_map) +int highest_possible_node_id(void); #else #define num_online_nodes() 1 #define num_possible_nodes() 1 @@ -359,6 +360,7 @@ extern nodemask_t node_possible_map; #define node_possible(node) ((node) == 0) #define first_online_node 0 #define next_online_node(nid) (MAX_NUMNODES) +#define highest_possible_node_id() 0 #endif #define any_online_node(mask) \ diff -puN lib/cpumask.c~cpumask-add-highest_possible_node_id lib/cpumask.c --- a/lib/cpumask.c~cpumask-add-highest_possible_node_id +++ a/lib/cpumask.c @@ -43,3 +43,19 @@ int __any_online_cpu(const cpumask_t *ma return cpu; } EXPORT_SYMBOL(__any_online_cpu); + +#if MAX_NUMNODES > 1 +/* + * Find the highest possible node id. + */ +int highest_possible_node_id(void) +{ + unsigned int node; + unsigned int highest = 0; + + for_each_cpu_mask(node, node_possible_map) + highest = node; + return highest; +} +EXPORT_SYMBOL(highest_possible_node_id); +#endif _