[PATCH] CPUSET related breakage of sys_mbind

From: Bob Picco
Date: Mon Jan 15 2007 - 18:31:07 EST



current->mems_allowed is defined for CONFIG_CPUSETS. This broke !CPUSETS
build. I compiled and linked tested both variants.

Signed-off-by: Bob Picco <bob.picco@xxxxxx>

include/linux/cpuset.h | 6 ++++++
mm/mempolicy.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)

Index: linux-2.6.20-rc4-mm1/mm/mempolicy.c
===================================================================
--- linux-2.6.20-rc4-mm1.orig/mm/mempolicy.c 2007-01-15 09:21:58.000000000 -0500
+++ linux-2.6.20-rc4-mm1/mm/mempolicy.c 2007-01-15 17:51:15.000000000 -0500
@@ -882,9 +882,9 @@ asmlinkage long sys_mbind(unsigned long
int err;

err = get_nodes(&nodes, nmask, maxnode);
- nodes_and(nodes, nodes, current->mems_allowed);
if (err)
return err;
+ cpuset_nodes_allowed(&nodes);
return do_mbind(start, len, mode, &nodes, flags);
}

Index: linux-2.6.20-rc4-mm1/include/linux/cpuset.h
===================================================================
--- linux-2.6.20-rc4-mm1.orig/include/linux/cpuset.h 2007-01-15 09:21:32.000000000 -0500
+++ linux-2.6.20-rc4-mm1/include/linux/cpuset.h 2007-01-15 14:01:30.000000000 -0500
@@ -75,6 +75,11 @@ static inline int cpuset_do_slab_mem_spr

extern void cpuset_track_online_nodes(void);

+static inline void cpuset_nodes_allowed(nodemask_t *nodes)
+{
+ nodes_and(*nodes, *nodes, current->mems_allowed);
+}
+
#else /* !CONFIG_CPUSETS */

static inline int cpuset_init_early(void) { return 0; }
@@ -145,6 +150,7 @@ static inline int cpuset_do_slab_mem_spr
}

static inline void cpuset_track_online_nodes(void) {}
+static inline void cpuset_nodes_allowed(nodemask_t *nodes) {}

#endif /* !CONFIG_CPUSETS */

-
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/