get_user_pages: don't try to follow PFNMAP pages
Nick Piggin points out that a few drivers play games with VM_IO (why? who knows..) and thus a pfn-remapped area may not have that bit set even if remap_pfn_range() set it originally. So make it explicit in get_user_pages() that we don't follow VM_PFNMAP pages, since pretty much by definition they do not have a "struct page" associated with them. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
14ee0a1414
commit
1ff8038988
1 changed files with 1 additions and 1 deletions
|
@ -1009,7 +1009,7 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!vma || (vma->vm_flags & VM_IO)
|
||||
if (!vma || (vma->vm_flags & (VM_IO | VM_PFNMAP))
|
||||
|| !(vm_flags & vma->vm_flags))
|
||||
return i ? : -EFAULT;
|
||||
|
||||
|
|
Loading…
Reference in a new issue