Commit 8c0fa8a0 authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

x86/entry/32: 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: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarAlexandre Chartre <alexandre.chartre@oracle.com>
Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200505134340.320164650@linutronix.de


parent b9f6976b
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -730,6 +730,7 @@
 * %eax: prev task
 * %edx: next task
 */
.pushsection .text, "ax"
SYM_CODE_START(__switch_to_asm)
	/*
	 * Save callee-saved registers
@@ -776,6 +777,7 @@ SYM_CODE_START(__switch_to_asm)

	jmp	__switch_to
SYM_CODE_END(__switch_to_asm)
.popsection

/*
 * The unwinder expects the last frame on the stack to always be at the same
@@ -784,6 +786,7 @@ SYM_CODE_END(__switch_to_asm)
 * asmlinkage function so its argument has to be pushed on the stack.  This
 * wrapper creates a proper "end of stack" frame header before the call.
 */
.pushsection .text, "ax"
SYM_FUNC_START(schedule_tail_wrapper)
	FRAME_BEGIN

@@ -794,6 +797,8 @@ SYM_FUNC_START(schedule_tail_wrapper)
	FRAME_END
	ret
SYM_FUNC_END(schedule_tail_wrapper)
.popsection

/*
 * A newly forked process directly context switches into this address.
 *
@@ -801,6 +806,7 @@ SYM_FUNC_END(schedule_tail_wrapper)
 * ebx: kernel thread func (NULL for user thread)
 * edi: kernel thread arg
 */
.pushsection .text, "ax"
SYM_CODE_START(ret_from_fork)
	call	schedule_tail_wrapper

@@ -825,6 +831,7 @@ SYM_CODE_START(ret_from_fork)
	movl	$0, PT_EAX(%esp)
	jmp	2b
SYM_CODE_END(ret_from_fork)
.popsection

/*
 * Return to user mode is not as complex as all this looks,
@@ -1691,6 +1698,7 @@ SYM_CODE_START(general_protection)
	jmp	common_exception
SYM_CODE_END(general_protection)

.pushsection .text, "ax"
SYM_CODE_START(rewind_stack_do_exit)
	/* Prevent any naive code from trying to unwind to our caller. */
	xorl	%ebp, %ebp
@@ -1701,3 +1709,4 @@ SYM_CODE_START(rewind_stack_do_exit)
	call	do_exit
1:	jmp 1b
SYM_CODE_END(rewind_stack_do_exit)
.popsection