Messages in this thread Patch in this message | | | Date | Tue, 05 May 2020 15:41:13 +0200 | From | Thomas Gleixner <> | Subject | [patch V4 part 2 01/18] 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> --- arch/x86/entry/entry_64.S | 10 ++++++++++ arch/x86/kernel/ftrace_64.S | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-)
--- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -279,6 +279,7 @@ SYM_CODE_END(entry_SYSCALL_64) * %rdi: prev task * %rsi: next task */ +.pushsection .text, "ax" SYM_CODE_START(__switch_to_asm) UNWIND_HINT_FUNC /* @@ -322,6 +323,7 @@ SYM_CODE_START(__switch_to_asm) jmp __switch_to SYM_CODE_END(__switch_to_asm) +.popsection /* * A newly forked process directly context switches into this address. @@ -330,6 +332,7 @@ SYM_CODE_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 @@ -358,6 +361,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. @@ -1042,6 +1046,7 @@ idtentry simd_coprocessor_error do_simd * Reload gs selector with exception handling * edi: new selector */ +.pushsection .text, "ax" SYM_FUNC_START(native_load_gs_index) FRAME_BEGIN pushfq @@ -1058,6 +1063,7 @@ SYM_FUNC_START(native_load_gs_index) ret SYM_FUNC_END(native_load_gs_index) EXPORT_SYMBOL(native_load_gs_index) +.popsection _ASM_EXTABLE(.Lgs_change, .Lbad_gs) .section .fixup, "ax" @@ -1077,6 +1083,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 @@ -1086,6 +1093,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 @@ -1730,6 +1738,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. */ @@ -1741,3 +1750,4 @@ SYM_CODE_START(rewind_stack_do_exit) call do_exit SYM_CODE_END(rewind_stack_do_exit) +.popsection --- a/arch/x86/kernel/ftrace_64.S +++ b/arch/x86/kernel/ftrace_64.S @@ -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) */
| |