浏览代码

drm/i915: Correctly set the write flag for get_user_pages in pread.

Otherwise, the results of our read didn't show up when we were faulting in
the page being read into (as happened with a testcase reading into a big
stack area).  Likely accounts for some conformance test failures.

Signed-off-by: Eric Anholt <eric@anholt.net>
Eric Anholt 16 年之前
父节点
当前提交
e5e9ecde63
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/gpu/drm/i915/i915_gem.c

+ 1 - 1
drivers/gpu/drm/i915/i915_gem.c

@@ -287,7 +287,7 @@ i915_gem_shmem_pread_slow(struct drm_device *dev, struct drm_gem_object *obj,
 
 
 	down_read(&mm->mmap_sem);
 	down_read(&mm->mmap_sem);
 	pinned_pages = get_user_pages(current, mm, (uintptr_t)args->data_ptr,
 	pinned_pages = get_user_pages(current, mm, (uintptr_t)args->data_ptr,
-				      num_pages, 0, 0, user_pages, NULL);
+				      num_pages, 1, 0, user_pages, NULL);
 	up_read(&mm->mmap_sem);
 	up_read(&mm->mmap_sem);
 	if (pinned_pages < num_pages) {
 	if (pinned_pages < num_pages) {
 		ret = -EFAULT;
 		ret = -EFAULT;