Change the assembly code to use only relative references of symbols for the
kernel to be PIE compatible.

Position Independent Executable (PIE) support will allow to extend the
KASLR randomization range below 0xffffffff80000000.

Signed-off-by: Thomas Garnier <thgar...@chromium.org>
Acked-by: Pavel Machek <pa...@ucw.cz>
Acked-by: Rafael J. Wysocki <rafael.j.wyso...@intel.com>
Reviewed-by: Kees Cook <keesc...@chromium.org>
---
 arch/x86/power/hibernate_asm_64.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/power/hibernate_asm_64.S 
b/arch/x86/power/hibernate_asm_64.S
index a4d5eb0a7ece..796cd19d575b 100644
--- a/arch/x86/power/hibernate_asm_64.S
+++ b/arch/x86/power/hibernate_asm_64.S
@@ -23,7 +23,7 @@
 #include <asm/frame.h>
 
 ENTRY(swsusp_arch_suspend)
-       movq    $saved_context, %rax
+       leaq    saved_context(%rip), %rax
        movq    %rsp, pt_regs_sp(%rax)
        movq    %rbp, pt_regs_bp(%rax)
        movq    %rsi, pt_regs_si(%rax)
@@ -114,7 +114,7 @@ ENTRY(restore_registers)
        movq    %rax, %cr4;  # turn PGE back on
 
        /* We don't restore %rax, it must be 0 anyway */
-       movq    $saved_context, %rax
+       leaq    saved_context(%rip), %rax
        movq    pt_regs_sp(%rax), %rsp
        movq    pt_regs_bp(%rax), %rbp
        movq    pt_regs_si(%rax), %rsi
-- 
2.22.0.770.g0f2c4a37fd-goog

Reply via email to