FAILED: patch "[PATCH] MIPS: function_graph: Simplify with function_graph_enter()" failed to apply to 4.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
8712b27c5723c26400a2b350faf1d6d9fd7ffaadMon Sep 17 00:00:00 2001
From: "Steven Rostedt (VMware)" <[email protected]>
Date: Sun, 18 Nov 2018 17:25:18 -0500
Subject: [PATCH] MIPS: function_graph: Simplify with function_graph_enter()
The function_graph_enter() function does the work of calling the function graph hook function and the management of the shadow stack, simplifying the work done in the architecture dependent prepare_ftrace_return().
Have MIPS use the new code, and remove the shadow stack management as well as having to set up the trace structure.
This is needed to prepare for a fix of a design bug on how the curr_ret_stack is used.
arch/mips/kernel/ftrace.c +2 -12
@@ -322,7 +322,6 @@ void prepare_ftrace_return(unsigned long *parent_ra_addr, unsigned long self_ra, unsigned long fp) {unsigned long old_parent_ra; -struct ftrace_graph_ent trace;unsigned long return_hooker = (unsigned long ) &return_to_handler;int faulted, insns;
@@ -369,12 +368,6 @@ void prepare_ftrace_return(unsigned long *parent_ra_addr, unsigned long self_ra,if (unlikely (faulted)) goto out; -if (ftrace_push_return_trace (old_parent_ra, self_ra, &trace.depth, fp, -NULL ) == -EBUSY ) { - *parent_ra_addr = old_parent_ra; -return ; - } -/* * Get the recorded ip of the current mcount calling site in the * __mcount_loc section, which will be used to filter the function
@@ -382,13 +375,10 @@ void prepare_ftrace_return(unsigned long *parent_ra_addr, unsigned long self_ra,*/ insns =core_kernel_text (self_ra) ?2 :MCOUNT_OFFSET_INSNS +1 ; - trace.func = self_ra - (MCOUNT_INSN_SIZE * insns); + self_ra -= (MCOUNT_INSN_SIZE * insns); -/* Only trace if the calling function expects to */ -if (!ftrace_graph_entry (&trace)) { - current->curr_ret_stack--; +if (function_graph_enter (old_parent_ra, self_ra, fp,NULL )) *parent_ra_addr = old_parent_ra; - }return ; out:ftrace_graph_stop ();