[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190708190930.GA16215@avx2>
Date: Mon, 8 Jul 2019 22:09:30 +0300
From: Alexey Dobriyan <adobriyan@...il.com>
To: thgarnie@...omium.org
Cc: linux-kernel@...r.kernel.org
Subject: Re: [PATCH v8 06/11] x86/CPU: Adapt assembly for PIE support
Thomas Garnier wrote:
> - "pushq $1f\n\t"
> + "movabsq $1f, %q0\n\t"
> + "pushq %q0\n\t"
> "iretq\n\t"
> UNWIND_HINT_RESTORE
> "1:"
Fake PIE. True PIE looks like this:
ffffffff81022d70 <do_sync_core>:
ffffffff81022d70: 8c d0 mov eax,ss
ffffffff81022d72: 50 push rax
ffffffff81022d73: 54 push rsp
ffffffff81022d74: 48 83 04 24 08 add QWORD PTR [rsp],0x8
ffffffff81022d79: 9c pushf
ffffffff81022d7a: 8c c8 mov eax,cs
ffffffff81022d7c: 50 push rax
ffffffff81022d7d: ===> 48 8d 05 03 00 00 00 lea rax,[rip+0x3] # ffffffff81022d87 <do_sync_core+0x17>
ffffffff81022d84: 50 push rax
ffffffff81022d85: 48 cf iretq
ffffffff81022d87: c3 ret
Signed-off-by: Alexey Dobriyan <adobriyan@...il.com>
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -710,7 +710,8 @@ static inline void sync_core(void)
"pushfq\n\t"
"mov %%cs, %0\n\t"
"pushq %q0\n\t"
- "pushq $1f\n\t"
+ "leaq 1f(%%rip), %q0\n\t"
+ "pushq %q0\n\t"
"iretq\n\t"
UNWIND_HINT_RESTORE
"1:"
Powered by blists - more mailing lists