|
@@ -143,7 +143,7 @@ ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret,
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST
|
|
|
|
|
|
+#if defined(CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST) && !defined(CC_USING_FENTRY)
|
|
/*
|
|
/*
|
|
* The arch may choose to record the frame pointer used
|
|
* The arch may choose to record the frame pointer used
|
|
* and check it here to make sure that it is what we expect it
|
|
* and check it here to make sure that it is what we expect it
|
|
@@ -154,6 +154,9 @@ ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret,
|
|
*
|
|
*
|
|
* Currently, x86_32 with optimize for size (-Os) makes the latest
|
|
* Currently, x86_32 with optimize for size (-Os) makes the latest
|
|
* gcc do the above.
|
|
* gcc do the above.
|
|
|
|
+ *
|
|
|
|
+ * Note, -mfentry does not use frame pointers, and this test
|
|
|
|
+ * is not needed if CC_USING_FENTRY is set.
|
|
*/
|
|
*/
|
|
if (unlikely(current->ret_stack[index].fp != frame_pointer)) {
|
|
if (unlikely(current->ret_stack[index].fp != frame_pointer)) {
|
|
ftrace_graph_stop();
|
|
ftrace_graph_stop();
|