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

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

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
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -2019,6 +2019,7 @@ ftrace_stub:
	.procend
ENDPROC(mcount)

#ifdef CONFIG_FUNCTION_GRAPH_TRACER
	.align 8
	.globl return_to_handler
	.type  return_to_handler, @function
@@ -2040,11 +2041,17 @@ parisc_return_to_handler:
#endif

	/* 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
	ldo -16(%sp),%ret1		/* Reference param save area */
	bve	(%ret0)
#else
	bv	%r0(%ret0)
#endif
	BL ftrace_return_to_handler,%r2
	ldi 0,%r26
.Lftrace_ret:
	copy %ret0,%rp

	/* restore original return values */
@@ -2062,6 +2069,8 @@ parisc_return_to_handler:
	.procend
ENDPROC(return_to_handler)

#endif /* CONFIG_FUNCTION_GRAPH_TRACER */

#endif	/* CONFIG_FUNCTION_TRACER */

#ifdef CONFIG_IRQSTACKS