From: Andrea Arcangeli mempolicy.c code will return the wrong policy in some cases. Signed-off-by: Andrea Arcangeli Signed-off-by: Andrew Morton --- 25-akpm/mm/mempolicy.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff -puN mm/mempolicy.c~mempolicy-selects-wrong-policy-fix mm/mempolicy.c --- 25/mm/mempolicy.c~mempolicy-selects-wrong-policy-fix 2004-11-17 20:39:02.415839960 -0800 +++ 25-akpm/mm/mempolicy.c 2004-11-17 20:39:02.422838896 -0800 @@ -900,13 +900,13 @@ sp_lookup(struct shared_policy *sp, unsi while (n) { struct sp_node *p = rb_entry(n, struct sp_node, nd); - if (start >= p->end) { + + if (start >= p->end) n = n->rb_right; - } else if (end < p->start) { + else if (end <= p->start) n = n->rb_left; - } else { + else break; - } } if (!n) return NULL; _