]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - include/asm-generic/vmlinux.lds.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
[linux.git] / include / asm-generic / vmlinux.lds.h
index 63cedc3c0c7737e69077ef76b4dee4cc95f52fe9..e00f41aa8ec4f1ef955db01e7a9a8d0c1cfdec61 100644 (file)
  * compiler option used. A given kernel image will only use one, AKA
  * FTRACE_CALLSITE_SECTION. We capture all of them here to avoid header
  * dependencies for FTRACE_CALLSITE_SECTION's definition.
+ *
+ * Need to also make ftrace_stub_graph point to ftrace_stub
+ * so that the same stub location may have different protocols
+ * and not mess up with C verifiers.
  */
 #define MCOUNT_REC()   . = ALIGN(8);                           \
                        __start_mcount_loc = .;                 \
                        KEEP(*(__mcount_loc))                   \
                        KEEP(*(__patchable_function_entries))   \
-                       __stop_mcount_loc = .;
+                       __stop_mcount_loc = .;                  \
+                       ftrace_stub_graph = ftrace_stub;
 #else
-#define MCOUNT_REC()
+# ifdef CONFIG_FUNCTION_TRACER
+#  define MCOUNT_REC() ftrace_stub_graph = ftrace_stub;
+# else
+#  define MCOUNT_REC()
+# endif
 #endif
 
 #ifdef CONFIG_TRACE_BRANCH_PROFILING