Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf726301 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

s390: use proper expoline sections for .dma code



The text_dma.S code uses its own macro to generate an inline version of an
expoline. To make it easier to identify all expolines in the kernel use a
thunk and a branch to the thunk just like the rest of the kernel code does
it.

The name of the text_dma.S expoline thunk is __dma__s390_indirect_jump_r14
and the section is named .dma.text.__s390_indirect_jump_r14.

This will be needed for the objtool support.

Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 40a3abf7
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -9,6 +9,16 @@
#include <asm/errno.h>
#include <asm/sigp.h>

#ifdef CC_USING_EXPOLINE
	.pushsection .dma.text.__s390_indirect_jump_r14,"axG"
__dma__s390_indirect_jump_r14:
	larl	%r1,0f
	ex	0,0(%r1)
	j	.
0:	br	%r14
	.popsection
#endif

	.section .dma.text,"ax"
/*
 * Simplified version of expoline thunk. The normal thunks can not be used here,
@@ -17,10 +27,11 @@
 * affects a few functions that are not performance-relevant.
 */
	.macro BR_EX_DMA_r14
	larl	%r1,0f
	ex	0,0(%r1)
	j	.
0:	br	%r14
#ifdef CC_USING_EXPOLINE
	jg	__dma__s390_indirect_jump_r14
#else
	br	%r14
#endif
	.endm

/*