1
0
Fork 0
alistair23-linux/arch/x86/power
Rafael J. Wysocki 97a70e548b x86, hibernate: fix breakage on x86_32 with CONFIG_NUMA set
Impact: fix crash during hibernation on 32-bit NUMA

The NUMA code on x86_32 creates special memory mapping that allows
each node's pgdat to be located in this node's memory.  For this
purpose it allocates a memory area at the end of each node's memory
and maps this area so that it is accessible with virtual addresses
belonging to low memory.  As a result, if there is high memory,
these NUMA-allocated areas are physically located in high memory,
although they are mapped to low memory addresses.

Our hibernation code does not take that into account and for this
reason hibernation fails on all x86_32 systems with CONFIG_NUMA=y and
with high memory present.  Fix this by adding a special mapping for
the NUMA-allocated memory areas to the temporary page tables created
during the last phase of resume.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-11-12 23:28:51 +01:00
..
Makefile x86 PM: consolidate suspend and hibernation code 2008-02-09 23:24:09 +01:00
cpu_32.c Merge branch 'x86/cpu' into x86/xsave 2008-09-04 09:04:45 -07:00
cpu_64.c x86: xsave: restore xcr0 during resume 2008-08-27 15:23:23 -07:00
hibernate_32.c x86, hibernate: fix breakage on x86_32 with CONFIG_NUMA set 2008-11-12 23:28:51 +01:00
hibernate_64.c x86: remove end_pfn in 64bit 2008-07-08 13:10:38 +02:00
hibernate_asm_32.S x86, cleanup: use X86_CR4_PGE in x86/power/hibernate_asm_32.S 2008-08-20 11:52:47 +02:00
hibernate_asm_64.S x86 cleanup: suspend_asm_64.S - use X86_CR4_PGE instead of numeric value 2008-02-19 16:18:33 +01:00