drm/i915: fix hibernation since i915 self-reclaim fixes
Since commit 4bdadb9785
("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>
This commit is contained in:
Родитель
9fbd7f9d11
Коммит
985b823b91
|
@ -2239,7 +2239,7 @@ i915_gem_object_get_pages(struct drm_gem_object *obj,
|
||||||
mapping = inode->i_mapping;
|
mapping = inode->i_mapping;
|
||||||
for (i = 0; i < page_count; i++) {
|
for (i = 0; i < page_count; i++) {
|
||||||
page = read_cache_page_gfp(mapping, i,
|
page = read_cache_page_gfp(mapping, i,
|
||||||
mapping_gfp_mask (mapping) |
|
GFP_HIGHUSER |
|
||||||
__GFP_COLD |
|
__GFP_COLD |
|
||||||
gfpmask);
|
gfpmask);
|
||||||
if (IS_ERR(page))
|
if (IS_ERR(page))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче