Message ID | 20180523195421.180248-12-thgarnie@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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? > 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
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
On Thu 2018-05-24 09:37:20, Thomas Garnier wrote: > 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. Ok, good. Acked-by: Pavel Machek <pavel@ucw.cz> > Any specific test you think I should use? Hibernation working should be good enough test for this. Thanks, Pavel
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
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> --- arch/x86/power/hibernate_asm_64.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)