check_range: Its okay if the first vma has the flag VM_RESERVED set if the MPOL_MF_DISCONTIG_OK flag was specified by the caller. Signed-off-by: Christoph Lameter Index: linux-2.6.14-mm2/mm/mempolicy.c =================================================================== --- linux-2.6.14-mm2.orig/mm/mempolicy.c 2005-11-12 08:49:58.000000000 -0800 +++ linux-2.6.14-mm2/mm/mempolicy.c 2005-11-12 09:07:15.000000000 -0800 @@ -359,7 +359,8 @@ check_range(struct mm_struct *mm, unsign first = find_vma(mm, start); if (!first) return ERR_PTR(-EFAULT); - if (first->vm_flags & VM_RESERVED) + if (first->vm_flags & VM_RESERVED && + !(flags & MPOL_MF_DISCONTIG_OK)) return ERR_PTR(-EACCES); prev = NULL; for (vma = first; vma && vma->vm_start < end; vma = vma->vm_next) {