projects/linux·commit 8548c84d

x86: Fix S4 regression

8548c84d · Takashi Iwai <[email protected]> · 2011-10-23 23:19:12 +02:00

Commit 4b239f458 ("x86-64, mm: Put early page table high") causes a S4
regression since 2.6.39, namely the machine reboots occasionally at S4
resume.  It doesn't happen always, overall rate is about 1/20.  But,
like other bugs, once when this happens, it continues to happen.

This patch fixes the problem by essentially reverting the memory
assignment in the older way.

Signed-off-by: Takashi Iwai <[email protected]>
Cc: <[email protected]>
Cc: Rafael J. Wysocki <[email protected]>
Cc: Yinghai Lu <[email protected]>
[ We'll hopefully find the real fix, but that's too late for 3.1 now ]
Signed-off-by: Linus Torvalds <[email protected]>
Commit
8548c84da2f47e71bbbe300f55edb768492575f7
Parents
1bf1aace

Changes

1 files changed · +1 −2

FileStatusAddDelContent
arch/x86/mm/init.cmodified+1−2View file

arch/x86/mm/init.c

View file
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 3032644..87488b9 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -63,9 +63,8 @@ static void __init find_early_table_space(unsigned long end, int use_pse,
#ifdef CONFIG_X86_32
/* for fixmap */
tables += roundup(__end_of_fixed_addresses * sizeof(pte_t), PAGE_SIZE);
-
- good_end = max_pfn_mapped << PAGE_SHIFT;
#endif
+ good_end = max_pfn_mapped << PAGE_SHIFT;
base = memblock_find_in_range(start, good_end, tables, PAGE_SIZE);
if (base == MEMBLOCK_ERROR)