mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 20:23:57 +08:00
x86/entry/64: Move non entry code into .text section
All ASM code which is not part of the entry functionality can move out into the .text section. No reason to keep it in the non-instrumentable entry section. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com> Acked-by: Peter Zijlstra <peterz@infradead.org> Link: https://lkml.kernel.org/r/20200505134340.227579223@linutronix.de
This commit is contained in:
parent
fba8dbeaf3
commit
b9f6976bfb
@ -279,6 +279,7 @@ SYM_CODE_END(entry_SYSCALL_64)
|
||||
* %rdi: prev task
|
||||
* %rsi: next task
|
||||
*/
|
||||
.pushsection .text, "ax"
|
||||
SYM_FUNC_START(__switch_to_asm)
|
||||
/*
|
||||
* Save callee-saved registers
|
||||
@ -321,6 +322,7 @@ SYM_FUNC_START(__switch_to_asm)
|
||||
|
||||
jmp __switch_to
|
||||
SYM_FUNC_END(__switch_to_asm)
|
||||
.popsection
|
||||
|
||||
/*
|
||||
* A newly forked process directly context switches into this address.
|
||||
@ -329,6 +331,7 @@ SYM_FUNC_END(__switch_to_asm)
|
||||
* rbx: kernel thread func (NULL for user thread)
|
||||
* r12: kernel thread arg
|
||||
*/
|
||||
.pushsection .text, "ax"
|
||||
SYM_CODE_START(ret_from_fork)
|
||||
UNWIND_HINT_EMPTY
|
||||
movq %rax, %rdi
|
||||
@ -357,6 +360,7 @@ SYM_CODE_START(ret_from_fork)
|
||||
movq $0, RAX(%rsp)
|
||||
jmp 2b
|
||||
SYM_CODE_END(ret_from_fork)
|
||||
.popsection
|
||||
|
||||
/*
|
||||
* Build the entry stubs with some assembler magic.
|
||||
@ -1037,10 +1041,12 @@ idtentry alignment_check do_alignment_check has_error_code=1
|
||||
idtentry simd_coprocessor_error do_simd_coprocessor_error has_error_code=0
|
||||
|
||||
|
||||
/*
|
||||
* Reload gs selector with exception handling
|
||||
* edi: new selector
|
||||
*/
|
||||
/*
|
||||
* Reload gs selector with exception handling
|
||||
* edi: new selector
|
||||
*
|
||||
* Is in entry.text as it shouldn't be instrumented.
|
||||
*/
|
||||
SYM_FUNC_START(native_load_gs_index)
|
||||
FRAME_BEGIN
|
||||
pushfq
|
||||
@ -1076,6 +1082,7 @@ SYM_CODE_END(.Lbad_gs)
|
||||
.previous
|
||||
|
||||
/* Call softirq on interrupt stack. Interrupts are off. */
|
||||
.pushsection .text, "ax"
|
||||
SYM_FUNC_START(do_softirq_own_stack)
|
||||
pushq %rbp
|
||||
mov %rsp, %rbp
|
||||
@ -1085,6 +1092,7 @@ SYM_FUNC_START(do_softirq_own_stack)
|
||||
leaveq
|
||||
ret
|
||||
SYM_FUNC_END(do_softirq_own_stack)
|
||||
.popsection
|
||||
|
||||
#ifdef CONFIG_XEN_PV
|
||||
idtentry hypervisor_callback xen_do_hypervisor_callback has_error_code=0
|
||||
@ -1728,6 +1736,7 @@ SYM_CODE_START(ignore_sysret)
|
||||
SYM_CODE_END(ignore_sysret)
|
||||
#endif
|
||||
|
||||
.pushsection .text, "ax"
|
||||
SYM_CODE_START(rewind_stack_do_exit)
|
||||
UNWIND_HINT_FUNC
|
||||
/* Prevent any naive code from trying to unwind to our caller. */
|
||||
@ -1739,3 +1748,4 @@ SYM_CODE_START(rewind_stack_do_exit)
|
||||
|
||||
call do_exit
|
||||
SYM_CODE_END(rewind_stack_do_exit)
|
||||
.popsection
|
||||
|
@ -12,7 +12,7 @@
|
||||
#include <asm/frame.h>
|
||||
|
||||
.code64
|
||||
.section .entry.text, "ax"
|
||||
.section .text, "ax"
|
||||
|
||||
#ifdef CONFIG_FRAME_POINTER
|
||||
/* Save parent and function stack frames (rip and rbp) */
|
||||
|
Loading…
Reference in New Issue
Block a user