drm/i915: Actually pass the reclaim gfp_t along to shmemfs!
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 22 Mar 2017 22:34:47 +0000 (22:34 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 23 Mar 2017 09:30:20 +0000 (09:30 +0000)
Words cannot describe the embarrassment at creating a new gfp_t relaim to
only prevent the oomkiller but allow direct|kswapd reclaim, and then not
use it in the shmem_read_mapping_page_gfp().

Fixes: 24f8e00a8a2e ("drm/i915: Prefer to report ENOMEM rather than incur the oom for gfx allocations")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170322223447.7493-1-chris@chris-wilson.co.uk
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
drivers/gpu/drm/i915/i915_gem.c

index 9d710bd8c6c912d981651c99f97f40db456537e6..2a32d7c120fcabc64453099156706bfe9b52a20f 100644 (file)
@@ -2343,7 +2343,7 @@ rebuild_st:
                        reclaim = mapping_gfp_constraint(mapping, 0);
                        reclaim |= __GFP_NORETRY; /* reclaim, but no oom */
 
-                       page = shmem_read_mapping_page_gfp(mapping, i, gfp);
+                       page = shmem_read_mapping_page_gfp(mapping, i, reclaim);
                        if (IS_ERR(page)) {
                                ret = PTR_ERR(page);
                                goto err_sg;