From: Thomas Garnier via Virtualization Subject: Re: [PATCH v3 11/27] x86/power/64: Adapt assembly for PIE support Date: Thu, 24 May 2018 09:37:20 -0700 Message-ID: References: <20180523195421.180248-1-thgarnie@google.com> <20180523195421.180248-12-thgarnie@google.com> <20180524110341.GB20225@amd> Reply-To: Thomas Garnier Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: Kate Stewart , Nicolas Pitre , the arch/x86 maintainers , Sergey Senozhatsky , Petr Mladek , Len Brown , Peter Zijlstra , Yonghong Song , Christopher Li , Dave Hansen , Dominik Brodowski , LKML , Masahiro Yamada , Jan Beulich , "H . Peter Anvin" , Kernel Hardening , Christoph Lameter , Alok Kataria , Linux Doc Mailing List , linux-arch , Jonathan Corbet , Herbert Xu Return-path: In-Reply-To: <20180524110341.GB20225@amd> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org List-Id: linux-crypto.vger.kernel.org On Thu, May 24, 2018 at 4:04 AM Pavel Machek 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 > 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 > > > > 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