diff --git a/arch/parisc/Kconfig.debug b/arch/parisc/Kconfig.debug index bc989e5..6d23a1a 100644 --- a/arch/parisc/Kconfig.debug +++ b/arch/parisc/Kconfig.debug @@ -1,5 +1,8 @@ menu "Kernel hacking" +config TRACE_IRQFLAGS_SUPPORT + def_bool y + source "lib/Kconfig.debug" config DEBUG_RODATA diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index e8f07dd..bdb4d33 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S @@ -1999,11 +1999,15 @@ ENDPROC(syscall_exit) #ifdef CONFIG_FUNCTION_TRACER .import ftrace_function_trampoline,code ENTRY(_mcount) + bv %r0(%rp) + nop + /* not reached */ copy %r3, %arg2 b ftrace_function_trampoline nop ENDPROC(_mcount) +#ifdef CONFIG_FUNCTION_GRAPH_TRACER ENTRY(return_to_handler) load32 return_trampoline, %rp copy %ret0, %arg0 @@ -2019,7 +2023,19 @@ return_trampoline: ftrace_stub: bv %r0(%rp) nop +#else /* CONFIG_FUNCTION_GRAPH_TRACER */ + +ENTRY(ftrace_stub) + bv %r0(%rp) + nop +ENDPROC(ftrace_stub) + +#endif /* CONFIG_FUNCTION_GRAPH_TRACER */ + +#ifdef CONFIG_FUNCTION_GRAPH_TRACER ENDPROC(return_to_handler) +#endif /* CONFIG_FUNCTION_GRAPH_TRACER */ + #endif /* CONFIG_FUNCTION_TRACER */ #ifdef CONFIG_IRQSTACKS diff --git a/arch/parisc/kernel/ftrace.c b/arch/parisc/kernel/ftrace.c index 5beb97b..8c9f757 100644 --- a/arch/parisc/kernel/ftrace.c +++ b/arch/parisc/kernel/ftrace.c @@ -156,7 +156,7 @@ void ftrace_function_trampoline(unsigned long parent, return; if (ftrace_trace_function != ftrace_stub) { - ftrace_trace_function(parent, self_addr); + ftrace_trace_function(parent, self_addr, NULL, NULL); return; } #ifdef CONFIG_FUNCTION_GRAPH_TRACER