[PATCH] Fix units in mbind check
Andi Kleen [Tue, 21 Feb 2006 02:27:59 +0000 (18:27 -0800)]
maxnode is a bit index and can't be directly compared against a byte length
like PAGE_SIZE

Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

mm/mempolicy.c

index bedfa4f..6422fe4 100644 (file)
@@ -808,7 +808,7 @@ static int get_nodes(nodemask_t *nodes, const unsigned long __user *nmask,
        nodes_clear(*nodes);
        if (maxnode == 0 || !nmask)
                return 0;
-       if (maxnode > PAGE_SIZE)
+       if (maxnode > PAGE_SIZE*BITS_PER_BYTE)
                return -EINVAL;
 
        nlongs = BITS_TO_LONGS(maxnode);