s390: remove indirect branch from do_softirq_own_stack
commit 9f18fff63cfd6f559daa1eaae60640372c65f84b upstream. The inline assembly to call __do_softirq on the irq stack uses an indirect branch. This can be replaced with a normal relative branch. Cc: stable@vger.kernel.org # 4.16 Fixes: f19fbd5ed6 ("s390: introduce execute-trampolines for branches") Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b26157de33
commit
fa376a12da
1 changed files with 2 additions and 3 deletions
|
@ -173,10 +173,9 @@ void do_softirq_own_stack(void)
|
||||||
new -= STACK_FRAME_OVERHEAD;
|
new -= STACK_FRAME_OVERHEAD;
|
||||||
((struct stack_frame *) new)->back_chain = old;
|
((struct stack_frame *) new)->back_chain = old;
|
||||||
asm volatile(" la 15,0(%0)\n"
|
asm volatile(" la 15,0(%0)\n"
|
||||||
" basr 14,%2\n"
|
" brasl 14,__do_softirq\n"
|
||||||
" la 15,0(%1)\n"
|
" la 15,0(%1)\n"
|
||||||
: : "a" (new), "a" (old),
|
: : "a" (new), "a" (old)
|
||||||
"a" (__do_softirq)
|
|
||||||
: "0", "1", "2", "3", "4", "5", "14",
|
: "0", "1", "2", "3", "4", "5", "14",
|
||||||
"cc", "memory" );
|
"cc", "memory" );
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue