Re: 784d5699eddc ("x86: move exports to actual definitions")

From: Steven Rostedt
Date: Wed Oct 19 2016 - 12:32:58 EST


On Wed, 19 Oct 2016 12:23:25 +0200
Borislav Petkov <bp@xxxxxxxxx> wrote:

> On Wed, Oct 19, 2016 at 02:10:04AM +0200, Adam Borowski wrote:
> > Already being fixed, please take a look at the thread starting at
> > 20161016002205.GA9686@vader; for your convenience I've put Nicholas Piggin's
> > initial work, my lousy but works-for-me fix for x86, Arnd Bergmann's for arm
> > at git@xxxxxxxxxx:kilobyte/linux.git branch kbuild-exports.
>
> Thanks.
>
> So you have three patches on that branch, I cherry-picked the first
> two and it is almost fixed except the __fentry__ thing which is still
> missing a CRC, see below.
>
> Adding Steve to CC too.
>
> WARNING: "__fentry__" [virt/lib/irqbypass.ko] has no CRC!
> WARNING: "__fentry__" [sound/core/snd-hrtimer.ko] has no CRC!
> WARNING: "__fentry__" [sound/core/seq/snd-seq.ko] has no CRC!

[ snip repeated failures of __fentry__ ]

Probably because of this:

#ifdef CC_USE_FENTRY
# define function_hook __fentry__
#else
# define function_hook mcount
#endif

[..]

Then you have this:

EXPORT_SYMBOL(function_hook)

which most likely exported the name "function_hook" and not
"__fentry__".

Does this patch fix things for you? If it does, I can make it more
generic (moving the MACRO_EXPORT_SYMBOL into the export.h header). And
submit that.

-- Steve

diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S
index efe73aacf966..9420cd6c6dba 100644
--- a/arch/x86/kernel/mcount_64.S
+++ b/arch/x86/kernel/mcount_64.S
@@ -295,7 +295,8 @@ trace:
jmp fgraph_trace
END(function_hook)
#endif /* CONFIG_DYNAMIC_FTRACE */
-EXPORT_SYMBOL(function_hook)
+#define MACRO_EXPORT_SYMBOL(x) EXPORT_SYMBOL(x)
+MACRO_EXPORT_SYMBOL(function_hook)
#endif /* CONFIG_FUNCTION_TRACER */

#ifdef CONFIG_FUNCTION_GRAPH_TRACER