History

x86: Fix S4 regression

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.

Takashi Iwai committed 15 years ago

Commit 8548c841 parent 1bf1aac1 file · +1 −2Browse files

Unified · Split

arch/x86/mm/init.c+1−2
@@ -63,9 +63,8 @@ static void __init find_early_table_space(unsigned long end, int use_pse, · 62 unmodified lines
63#ifdef CONFIG_X86_3263#ifdef CONFIG_X86_32
64 /* for fixmap */64 /* for fixmap */
65 tables += roundup(__end_of_fixed_addresses * sizeof(pte_t), PAGE_SIZE);65 tables += roundup(__end_of_fixed_addresses * sizeof(pte_t), PAGE_SIZE);
66
67 good_end = max_pfn_mapped << PAGE_SHIFT;
68#endif66#endif
67 good_end = max_pfn_mapped << PAGE_SHIFT;
69 68
70 base = memblock_find_in_range(start, good_end, tables, PAGE_SIZE);69 base = memblock_find_in_range(start, good_end, tables, PAGE_SIZE);
71 if (base == MEMBLOCK_ERROR)70 if (base == MEMBLOCK_ERROR)