summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-09-01 17:39:17 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2017-09-04 19:05:16 -0400
commitb4bf802a5a6563c22d5e41a0f8873088bd3f655e (patch)
tree4566651bc3e7b65d0308ebe092f4446b2605ce24 /mm
parent9a779bc149c79a7acae5614617a0a9e0fd007ce4 (diff)
downloadlinux-0-day-b4bf802a5a6563c22d5e41a0f8873088bd3f655e.tar.gz
linux-0-day-b4bf802a5a6563c22d5e41a0f8873088bd3f655e.tar.xz
mm/nommu: switch do_mmap_private to kernel_read
Instead of playing with the address limit. This also gains us validation of the kvec and proper atime updates. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'mm')
-rw-r--r--mm/nommu.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/mm/nommu.c b/mm/nommu.c
index fc184f597d59d..e907a25ec9bd5 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -1164,17 +1164,12 @@ static int do_mmap_private(struct vm_area_struct *vma,
if (vma->vm_file) {
/* read the contents of a file into the copy */
- mm_segment_t old_fs;
loff_t fpos;
fpos = vma->vm_pgoff;
fpos <<= PAGE_SHIFT;
- old_fs = get_fs();
- set_fs(KERNEL_DS);
- ret = __vfs_read(vma->vm_file, base, len, &fpos);
- set_fs(old_fs);
-
+ ret = kernel_read(vma->vm_file, base, len, &fpos);
if (ret < 0)
goto error_free;