drm/i915: Fix memory corruption on resume from hibernation (Closes: #534422)

svn path=/dists/sid/linux-2.6/; revision=15971
This commit is contained in:
Ben Hutchings 2010-07-10 15:40:48 +00:00
parent 8f9b61a31a
commit 731f99da79
3 changed files with 47 additions and 0 deletions

2
debian/changelog vendored
View File

@ -8,6 +8,8 @@ linux-2.6 (2.6.32-17) UNRELEASED; urgency=low
architectures where perf events are not available (Closes: #588409)
* linux-tools: Add build-dependency on binutils-dev to enable symbol
demangling in perf
* drm/i915: Fix memory corruption on resume from hibernation
(Closes: #534422)
-- maximilian attems <maks@debian.org> Wed, 07 Jul 2010 12:33:04 +0200

View File

@ -0,0 +1,44 @@
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Fri, 2 Jul 2010 10:04:42 +1000
Subject: [PATCH] drm/i915: fix hibernation since i915 self-reclaim fixes
commit 985b823b919273fe1327d56d2196b4f92e5d0fae upstream.
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>
---
drivers/gpu/drm/i915/i915_gem.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
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))
--
1.7.1

View File

@ -8,3 +8,4 @@
+ bugfix/all/perf-Use-default-compiler-mode-by-default.patch
+ bugfix/all/perf-tools-Move-QUIET_STDERR-def-to-before-first-use.patch
+ bugfix/all/perf-tools-Check-if-dev-null-can-be-used-as-the-o-gc.patch
+ bugfix/x86/drm-i915-fix-hibernation-since-i915-self-reclaim-fix.patch