-stable review patch. If anyone has any objections, please let us know. ------------------ A kernel BUG() is triggered by a call to set_mempolicy() with a negative first argument. This is because the mode is declared as an int, and the validity check doesnt check < 0 values. Alternatively, mode could be declared as unsigned int or unsigned long. Signed-off-by: Eric Dumazet Cc: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Chris Wright --- mm/mempolicy.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: linux-2.6.12.y/mm/mempolicy.c =================================================================== --- linux-2.6.12.y.orig/mm/mempolicy.c +++ linux-2.6.12.y/mm/mempolicy.c @@ -409,7 +409,7 @@ asmlinkage long sys_set_mempolicy(int mo struct mempolicy *new; DECLARE_BITMAP(nodes, MAX_NUMNODES); - if (mode > MPOL_MAX) + if (mode < 0 || mode > MPOL_MAX) return -EINVAL; err = get_nodes(nodes, nmask, maxnode, mode); if (err) --