forked from Minki/linux
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: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
40a3abf751
commit
bf72630130
@ -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 @@
|
|||||||
* 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
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user