Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1ff80389 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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: default avatarLinus Torvalds <torvalds@osdl.org>
parent 14ee0a14
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1009,7 +1009,7 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
			continue;
			continue;
		}
		}


		if (!vma || (vma->vm_flags & VM_IO)
		if (!vma || (vma->vm_flags & (VM_IO | VM_PFNMAP))
				|| !(vm_flags & vma->vm_flags))
				|| !(vm_flags & vma->vm_flags))
			return i ? : -EFAULT;
			return i ? : -EFAULT;