Commit 5fece5ad authored by Helge Deller's avatar Helge Deller

parisc: Use long jump to reach ftrace_return_to_handler()

Depending on config options we will need to use a long jump to reach
ftrace_return_to_handler().  Additionally only compile the
parisc_return_to_handler code when CONFIG_FUNCTION_GRAPH_TRACER is set.
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent 90afe0a9
...@@ -2019,6 +2019,7 @@ ftrace_stub: ...@@ -2019,6 +2019,7 @@ ftrace_stub:
.procend .procend
ENDPROC(mcount) ENDPROC(mcount)
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
.align 8 .align 8
.globl return_to_handler .globl return_to_handler
.type return_to_handler, @function .type return_to_handler, @function
...@@ -2040,11 +2041,17 @@ parisc_return_to_handler: ...@@ -2040,11 +2041,17 @@ parisc_return_to_handler:
#endif #endif
/* call ftrace_return_to_handler(0) */ /* call ftrace_return_to_handler(0) */
.import ftrace_return_to_handler,code
load32 ftrace_return_to_handler,%ret0
load32 .Lftrace_ret,%r2
#ifdef CONFIG_64BIT #ifdef CONFIG_64BIT
ldo -16(%sp),%ret1 /* Reference param save area */ ldo -16(%sp),%ret1 /* Reference param save area */
bve (%ret0)
#else
bv %r0(%ret0)
#endif #endif
BL ftrace_return_to_handler,%r2
ldi 0,%r26 ldi 0,%r26
.Lftrace_ret:
copy %ret0,%rp copy %ret0,%rp
/* restore original return values */ /* restore original return values */
...@@ -2062,6 +2069,8 @@ parisc_return_to_handler: ...@@ -2062,6 +2069,8 @@ parisc_return_to_handler:
.procend .procend
ENDPROC(return_to_handler) ENDPROC(return_to_handler)
#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
#endif /* CONFIG_FUNCTION_TRACER */ #endif /* CONFIG_FUNCTION_TRACER */
#ifdef CONFIG_IRQSTACKS #ifdef CONFIG_IRQSTACKS
......
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