[PATCH] nodemask.h: change any_online_node() to a static inline

From: H Hartley Sweeten
Date: Tue Jan 05 2010 - 13:17:40 EST


Change any_online_node() from a macro to a static inline function.

The macro any_online_node() uses the local symbol 'node', this causes a
sparse warning in net/sunrpc/svc.c. Changing the macro to a static inline
function quites the sparse warning and will prevent the same warning
from possibly occurring in the future.

Signed-off-by: H Hartley Sweeten <hsweeten@xxxxxxxxxxxxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: J. Bruce Fields <bfields@xxxxxxxxxxxx>

---

diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h
index 454997c..1f66e02 100644
--- a/include/linux/nodemask.h
+++ b/include/linux/nodemask.h
@@ -467,15 +467,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)
@@ -484,6 +475,17 @@ static inline int num_node_state(enum node_states state)
#define for_each_node(node) for_each_node_state(node, N_POSSIBLE)
#define for_each_online_node(node) for_each_node_state(node, N_ONLINE)

+static inline int any_online_node(nodemask_t mask)
+{
+ int node;
+
+ for_each_node_mask(node, mask) {
+ if (node_online(node))
+ break;
+ }
+ return node;
+}
+
/*
* For nodemask scrach area.
* NODEMASK_ALLOC(type, name) allocates an object with a specified type and
--
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/