[PATCH] unpaged: get_user_pages VM_RESERVED

The PageReserved removal in 2.6.15-rc1 prohibited get_user_pages on the areas
flagged VM_RESERVED in place of PageReserved. That is correct in theory - we
ought not to interfere with struct pages in such a reserved area; but in
practice it broke BTTV for one.

So revert to prohibiting only on VM_IO: if someone gets into trouble with
get_user_pages on VM_RESERVED, it'll just be a "don't do that".

You can argue that videobuf_mmap_mapper shouldn't set VM_RESERVED in the first
place, but now's not the time for breaking drivers without notice.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by Hugh Dickins and committed by Linus Torvalds ed5297a9 aa1a64ee

+1 -1
+1 -1
mm/memory.c
··· 968 968 continue; 969 969 } 970 970 971 - if (!vma || (vma->vm_flags & (VM_IO | VM_RESERVED)) 971 + if (!vma || (vma->vm_flags & VM_IO) 972 972 || !(vm_flags & vma->vm_flags)) 973 973 return i ? : -EFAULT; 974 974