42 lines
1.7 KiB
Diff
42 lines
1.7 KiB
Diff
|
From: Linus Torvalds <torvalds@linux-foundation.org>
|
||
|
Date: Fri, 2 Jul 2010 00:04:42 +0000 (+1000)
|
||
|
Subject: drm/i915: fix hibernation since i915 self-reclaim fixes
|
||
|
X-Git-Tag: v2.6.35-rc4~13
|
||
|
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=985b823b919273fe1327d56d2196b4f92e5d0fae
|
||
|
|
||
|
drm/i915: fix hibernation since i915 self-reclaim fixes
|
||
|
|
||
|
Since commit 4bdadb9785696439c6e2b3efe34aa76df1149c83 ("drm/i915:
|
||
|
Selectively enable self-reclaim"), we've been passing GFP_MOVABLE to the
|
||
|
i915 page allocator where we weren't before due to some over-eager
|
||
|
removal of the page mapping gfp_flags games the code used to play.
|
||
|
|
||
|
This caused hibernate on Intel hardware to result in a lot of memory
|
||
|
corruptions on resume. See for example
|
||
|
|
||
|
http://bugzilla.kernel.org/show_bug.cgi?id=13811
|
||
|
|
||
|
Reported-by: Evengi Golov (in bugzilla)
|
||
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||
|
Tested-by: M. Vefa Bicakci <bicave@superonline.com>
|
||
|
Cc: stable@kernel.org
|
||
|
Cc: Chris Wilson <chris@chris-wilson.co.uk>
|
||
|
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
|
||
|
Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
|
||
|
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||
|
---
|
||
|
|
||
|
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
|
||
|
index 9ded3da..0743858 100644
|
||
|
--- a/drivers/gpu/drm/i915/i915_gem.c
|
||
|
+++ b/drivers/gpu/drm/i915/i915_gem.c
|
||
|
@@ -2239,7 +2239,7 @@ i915_gem_object_get_pages(struct drm_gem_object *obj,
|
||
|
mapping = inode->i_mapping;
|
||
|
for (i = 0; i < page_count; i++) {
|
||
|
page = read_cache_page_gfp(mapping, i,
|
||
|
- mapping_gfp_mask (mapping) |
|
||
|
+ GFP_HIGHUSER |
|
||
|
__GFP_COLD |
|
||
|
gfpmask);
|
||
|
if (IS_ERR(page))
|