Commit bf726301 authored by Martin Schwidefsky's avatar Martin Schwidefsky

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
...@@ -9,6 +9,16 @@ ...@@ -9,6 +9,16 @@
#include <asm/errno.h> #include <asm/errno.h>
#include <asm/sigp.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" .section .dma.text,"ax"
/* /*
* Simplified version of expoline thunk. The normal thunks can not be used here, * Simplified version of expoline thunk. The normal thunks can not be used here,
...@@ -17,10 +27,11 @@ ...@@ -17,10 +27,11 @@
* affects a few functions that are not performance-relevant. * affects a few functions that are not performance-relevant.
*/ */
.macro BR_EX_DMA_r14 .macro BR_EX_DMA_r14
larl %r1,0f #ifdef CC_USING_EXPOLINE
ex 0,0(%r1) jg __dma__s390_indirect_jump_r14
j . #else
0: br %r14 br %r14
#endif
.endm .endm
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment