OpenCloudOS-Kernel/arch/x86/power
Rafael J. Wysocki c226fab474 x86/power/64: Do not refer to __PAGE_OFFSET from assembly code
When CONFIG_RANDOMIZE_MEMORY is set on x86-64, __PAGE_OFFSET becomes
a variable and using it as a symbol in the image memory restoration
assembly code under core_restore_code is not correct any more.

To avoid that problem, modify set_up_temporary_mappings() to compute
the physical address of the temporary page tables and store it in
temp_level4_pgt, so that the value of that variable is ready to be
written into CR3.  Then, the assembly code doesn't have to worry
about converting that value into a physical address and things work
regardless of whether or not CONFIG_RANDOMIZE_MEMORY is set.

Reported-and-tested-by: Thomas Garnier <thgarnie@google.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-08-03 01:35:38 +02:00
..
Makefile x86: Fix resume from suspend when CONFIG_CC_STACKPROTECTOR 2009-07-08 13:20:13 +02:00
cpu.c x86 / hibernate: Use hlt_play_dead() when resuming from hibernation 2016-07-15 22:42:48 +02:00
hibernate_32.c x86/cpufeature: Remove cpu_has_pse 2016-03-31 13:35:10 +02:00
hibernate_64.c x86/power/64: Do not refer to __PAGE_OFFSET from assembly code 2016-08-03 01:35:38 +02:00
hibernate_asm_32.S x86, gdt, hibernate: Store/load GDT for hibernate path. 2013-05-02 11:27:35 -07:00
hibernate_asm_64.S x86/power/64: Do not refer to __PAGE_OFFSET from assembly code 2016-08-03 01:35:38 +02:00