2010-01-06 23:24:41

by Hartley Sweeten

[permalink] [raw]
Subject: [PATCH] nodmask.h: remove macro any_online_node

nodmask.h: remove macro any_online_node

The macro any_online_node is prone to producing sparse warnings
due to the local symbol 'node'. Since all the in-tree users are really
requesting the first online node (the mask argument is either
NODE_MASK_ALL or node_online_map) just use the first_online_node
macro and remove the any_online_node macro since there are no users.

Signed-off-by: H Hartley Sweeten <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: KAMEZAWA Hiroyuki <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Lee Schermerhorn <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Dave Hansen <[email protected]>
Cc: Milton Miller <[email protected]>
Cc: Nathan Fontenot <[email protected]>
Cc: Geoff Levand <[email protected]>
Cc: Grant Likely <[email protected]>
Cc: J. Bruce Fields <[email protected]>
Cc: Neil Brown <[email protected]>
Cc: Trond Myklebust <[email protected]>
Cc: David S. Miller <[email protected]>
Cc: Benny Halevy <[email protected]>
Cc: Chuck Lever <[email protected]>
Cc: Ricardo Labiaga <[email protected]>

---

diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index b037d95..64c0022 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -451,7 +451,7 @@ static int __cpuinit numa_setup_cpu(unsigned long lcpu)
nid = of_node_to_nid_single(cpu);

if (nid < 0 || !node_online(nid))
- nid = any_online_node(NODE_MASK_ALL);
+ nid = first_online_node;
out:
map_cpu_to_node(lcpu, nid);

@@ -1114,7 +1114,7 @@ int hot_add_scn_to_nid(unsigned long scn_addr)
int nid, found = 0;

if (!numa_enabled || (min_common_depth < 0))
- return any_online_node(NODE_MASK_ALL);
+ return first_online_node;

memory = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
if (memory) {
@@ -1125,7 +1125,7 @@ int hot_add_scn_to_nid(unsigned long scn_addr)
}

if (nid < 0 || !node_online(nid))
- nid = any_online_node(NODE_MASK_ALL);
+ nid = first_online_node;

if (NODE_DATA(nid)->node_spanned_pages)
return nid;
diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h
index 454997c..c4fa64b 100644
--- a/include/linux/nodemask.h
+++ b/include/linux/nodemask.h
@@ -69,8 +69,6 @@
* int node_online(node) Is some node online?
* int node_possible(node) Is some node possible?
*
- * int any_online_node(mask) First online node in mask
- *
* node_set_online(node) set bit 'node' in node_online_map
* node_set_offline(node) clear bit 'node' in node_online_map
*
@@ -467,15 +465,6 @@ static inline int num_node_state(enum node_states state)
#define node_online_map node_states[N_ONLINE]
#define node_possible_map node_states[N_POSSIBLE]

-#define any_online_node(mask) \
-({ \
- int node; \
- for_each_node_mask(node, (mask)) \
- if (node_online(node)) \
- break; \
- node; \
-})
-
#define num_online_nodes() num_node_state(N_ONLINE)
#define num_possible_nodes() num_node_state(N_POSSIBLE)
#define node_online(node) node_state((node), N_ONLINE)
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index 538ca43..832c1fe 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -133,7 +133,7 @@ svc_pool_map_choose_mode(void)
return SVC_POOL_PERNODE;
}

- node = any_online_node(node_online_map);
+ node = first_online_node;
if (nr_cpus_node(node) > 2) {
/*
* Non-trivial SMP, or CONFIG_NUMA on


2010-01-06 23:53:39

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH] nodmask.h: remove macro any_online_node

On Wed, 6 Jan 2010, H Hartley Sweeten wrote:

> nodmask.h: remove macro any_online_node
>
> The macro any_online_node is prone to producing sparse warnings
> due to the local symbol 'node'. Since all the in-tree users are really
> requesting the first online node (the mask argument is either
> NODE_MASK_ALL or node_online_map) just use the first_online_node
> macro and remove the any_online_node macro since there are no users.
>
> Signed-off-by: H Hartley Sweeten <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Cc: David Rientjes <[email protected]>
> Cc: KAMEZAWA Hiroyuki <[email protected]>
> Cc: Mel Gorman <[email protected]>
> Cc: Lee Schermerhorn <[email protected]>
> Cc: Benjamin Herrenschmidt <[email protected]>
> Cc: Paul Mackerras <[email protected]>
> Cc: Dave Hansen <[email protected]>
> Cc: Milton Miller <[email protected]>
> Cc: Nathan Fontenot <[email protected]>
> Cc: Geoff Levand <[email protected]>
> Cc: Grant Likely <[email protected]>
> Cc: J. Bruce Fields <[email protected]>
> Cc: Neil Brown <[email protected]>
> Cc: Trond Myklebust <[email protected]>
> Cc: David S. Miller <[email protected]>
> Cc: Benny Halevy <[email protected]>
> Cc: Chuck Lever <[email protected]>
> Cc: Ricardo Labiaga <[email protected]>

Acked-by: David Rientjes <[email protected]>

2010-01-06 23:55:51

by Kamezawa Hiroyuki

[permalink] [raw]
Subject: Re: [PATCH] nodmask.h: remove macro any_online_node

On Wed, 6 Jan 2010 16:24:58 -0700
H Hartley Sweeten <[email protected]> wrote:

> nodmask.h: remove macro any_online_node
>
> The macro any_online_node is prone to producing sparse warnings
> due to the local symbol 'node'. Since all the in-tree users are really
> requesting the first online node (the mask argument is either
> NODE_MASK_ALL or node_online_map) just use the first_online_node
> macro and remove the any_online_node macro since there are no users.
>

Reviewed-by: KAMEZAWA Hiroyuki <[email protected]>
Thank you.
BTW, it's better to add diffstat to this kind of changes.

Regards,
-Kame

> Signed-off-by: H Hartley Sweeten <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Cc: David Rientjes <[email protected]>
> Cc: KAMEZAWA Hiroyuki <[email protected]>
> Cc: Mel Gorman <[email protected]>
> Cc: Lee Schermerhorn <[email protected]>
> Cc: Benjamin Herrenschmidt <[email protected]>
> Cc: Paul Mackerras <[email protected]>
> Cc: Dave Hansen <[email protected]>
> Cc: Milton Miller <[email protected]>
> Cc: Nathan Fontenot <[email protected]>
> Cc: Geoff Levand <[email protected]>
> Cc: Grant Likely <[email protected]>
> Cc: J. Bruce Fields <[email protected]>
> Cc: Neil Brown <[email protected]>
> Cc: Trond Myklebust <[email protected]>
> Cc: David S. Miller <[email protected]>
> Cc: Benny Halevy <[email protected]>
> Cc: Chuck Lever <[email protected]>
> Cc: Ricardo Labiaga <[email protected]>
>
> ---
>
> diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
> index b037d95..64c0022 100644
> --- a/arch/powerpc/mm/numa.c
> +++ b/arch/powerpc/mm/numa.c
> @@ -451,7 +451,7 @@ static int __cpuinit numa_setup_cpu(unsigned long lcpu)
> nid = of_node_to_nid_single(cpu);
>
> if (nid < 0 || !node_online(nid))
> - nid = any_online_node(NODE_MASK_ALL);
> + nid = first_online_node;
> out:
> map_cpu_to_node(lcpu, nid);
>
> @@ -1114,7 +1114,7 @@ int hot_add_scn_to_nid(unsigned long scn_addr)
> int nid, found = 0;
>
> if (!numa_enabled || (min_common_depth < 0))
> - return any_online_node(NODE_MASK_ALL);
> + return first_online_node;
>
> memory = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
> if (memory) {
> @@ -1125,7 +1125,7 @@ int hot_add_scn_to_nid(unsigned long scn_addr)
> }
>
> if (nid < 0 || !node_online(nid))
> - nid = any_online_node(NODE_MASK_ALL);
> + nid = first_online_node;
>
> if (NODE_DATA(nid)->node_spanned_pages)
> return nid;
> diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h
> index 454997c..c4fa64b 100644
> --- a/include/linux/nodemask.h
> +++ b/include/linux/nodemask.h
> @@ -69,8 +69,6 @@
> * int node_online(node) Is some node online?
> * int node_possible(node) Is some node possible?
> *
> - * int any_online_node(mask) First online node in mask
> - *
> * node_set_online(node) set bit 'node' in node_online_map
> * node_set_offline(node) clear bit 'node' in node_online_map
> *
> @@ -467,15 +465,6 @@ static inline int num_node_state(enum node_states state)
> #define node_online_map node_states[N_ONLINE]
> #define node_possible_map node_states[N_POSSIBLE]
>
> -#define any_online_node(mask) \
> -({ \
> - int node; \
> - for_each_node_mask(node, (mask)) \
> - if (node_online(node)) \
> - break; \
> - node; \
> -})
> -
> #define num_online_nodes() num_node_state(N_ONLINE)
> #define num_possible_nodes() num_node_state(N_POSSIBLE)
> #define node_online(node) node_state((node), N_ONLINE)
> diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
> index 538ca43..832c1fe 100644
> --- a/net/sunrpc/svc.c
> +++ b/net/sunrpc/svc.c
> @@ -133,7 +133,7 @@ svc_pool_map_choose_mode(void)
> return SVC_POOL_PERNODE;
> }
>
> - node = any_online_node(node_online_map);
> + node = first_online_node;
> if (nr_cpus_node(node) > 2) {
> /*
> * Non-trivial SMP, or CONFIG_NUMA on
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2010-02-01 02:10:15

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: Re: [PATCH] nodmask.h: remove macro any_online_node

On Wed, 2010-01-06 at 16:24 -0700, H Hartley Sweeten wrote:
> nodmask.h: remove macro any_online_node
>
> The macro any_online_node is prone to producing sparse warnings
> due to the local symbol 'node'. Since all the in-tree users are really
> requesting the first online node (the mask argument is either
> NODE_MASK_ALL or node_online_map) just use the first_online_node
> macro and remove the any_online_node macro since there are no users.
>
> Signed-off-by: H Hartley Sweeten <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Cc: David Rientjes <[email protected]>
> Cc: KAMEZAWA Hiroyuki <[email protected]>
> Cc: Mel Gorman <[email protected]>
> Cc: Lee Schermerhorn <[email protected]>

Acked-by: Benjamin Herrenschmidt <[email protected]>

> Cc: Paul Mackerras <[email protected]>
> Cc: Dave Hansen <[email protected]>
> Cc: Milton Miller <[email protected]>
> Cc: Nathan Fontenot <[email protected]>
> Cc: Geoff Levand <[email protected]>
> Cc: Grant Likely <[email protected]>
> Cc: J. Bruce Fields <[email protected]>
> Cc: Neil Brown <[email protected]>
> Cc: Trond Myklebust <[email protected]>
> Cc: David S. Miller <[email protected]>
> Cc: Benny Halevy <[email protected]>
> Cc: Chuck Lever <[email protected]>
> Cc: Ricardo Labiaga <[email protected]>

Cheers,
Ben.