Re: [PATCH v3 11/27] x86/power/64: Adapt assembly for PIE support

Thomas Garnier via Virtualization
2018-05-24T16:37:20Z

On Thu, May 24, 2018 at 4:04 AM Pavel Machek <pavel@ucw.cz> wrote:

> On Wed 2018-05-23 12:54:05, Thomas Garnier wrote:
> > 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 extended the
> > KASLR randomization range below the -2G memory limit.
> >
> > Signed-off-by: Thomas Garnier <thgarnie@google.com>

> Again, was this tested?

Hibernation was tested as much as I can with qemu and my dedicated machine.
Any specific test you think I should use?

> > diff --git a/arch/x86/power/hibernate_asm_64.S
b/arch/x86/power/hibernate_asm_64.S
> > index ce8da3a0412c..6fdd7bbc3c33 100644
> > --- a/arch/x86/power/hibernate_asm_64.S
> > +++ b/arch/x86/power/hibernate_asm_64.S
> > @@ -24,7 +24,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)
> > @@ -115,7 +115,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

> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures)
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

--
Thomas