diff options
Diffstat (limited to 'mm/memory.c')
-rw-r--r-- | mm/memory.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mm/memory.c b/mm/memory.c index fc1987dfd8cc..20a9adb7b36e 100644 --- a/mm/memory.c +++ b/mm/memory.c | |||
@@ -3873,6 +3873,10 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm, | |||
3873 | { | 3873 | { |
3874 | struct vm_area_struct *vma; | 3874 | struct vm_area_struct *vma; |
3875 | void *old_buf = buf; | 3875 | void *old_buf = buf; |
3876 | unsigned int flags = FOLL_FORCE; | ||
3877 | |||
3878 | if (write) | ||
3879 | flags |= FOLL_WRITE; | ||
3876 | 3880 | ||
3877 | down_read(&mm->mmap_sem); | 3881 | down_read(&mm->mmap_sem); |
3878 | /* ignore errors, just check how much was successfully transferred */ | 3882 | /* ignore errors, just check how much was successfully transferred */ |
@@ -3882,7 +3886,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm, | |||
3882 | struct page *page = NULL; | 3886 | struct page *page = NULL; |
3883 | 3887 | ||
3884 | ret = get_user_pages_remote(tsk, mm, addr, 1, | 3888 | ret = get_user_pages_remote(tsk, mm, addr, 1, |
3885 | write, 1, &page, &vma); | 3889 | flags, &page, &vma); |
3886 | if (ret <= 0) { | 3890 | if (ret <= 0) { |
3887 | #ifndef CONFIG_HAVE_IOREMAP_PROT | 3891 | #ifndef CONFIG_HAVE_IOREMAP_PROT |
3888 | break; | 3892 | break; |