[PATCH] powerpc/ftrace: add ftrace.h, fix sparse warning

Michael Ellerman mpe at ellerman.id.au
Wed Mar 8 22:24:28 AEDT 2017


"Tobin C. Harding" <me at tobin.cc> writes:

> Sparse emits warning: symbol 'prepare_ftrace_return' was not
> declared. Should it be static? prepare_ftrace_return() is called
> from assembler and should not be static. Adding a header file
> declaring the function will fix the sparse warning while adding
> documentation to the call.
>
> Add header file ftrace.h with single function declaration. Protect
> declaration with preprocessor guard so it may be included in
> assembly. Include new header in all files that call
> prepare_ftrace_return() and in ftrace.c where function is defined.
>
> Signed-off-by: Tobin C. Harding <me at tobin.cc>
> ---
>
> Github issue: #37 Fix sparse warnings
>
> Tested by building on Power8.
>
> There are a bunch of these in arch/powerpc/kernel/. Do we want to add
> a header for each one, cluttering up the directory to fix the sparse
> warnings? 

No we don't.

In fact we already have a header for this, ie. functions defined in asm
but called from C, it's arch/powerpc/include/asm/asm-prototypes.h.

So I've reworked it to:

diff --git a/arch/powerpc/include/asm/asm-prototypes.h b/arch/powerpc/include/asm/asm-prototypes.h
index f6c5264287e5..e02db66a77e3 100644
--- a/arch/powerpc/include/asm/asm-prototypes.h
+++ b/arch/powerpc/include/asm/asm-prototypes.h
@@ -120,6 +120,8 @@ extern s64 __ashrdi3(s64, int);
 extern int __cmpdi2(s64, s64);
 extern int __ucmpdi2(u64, u64);
 
+/* tracing */
 void _mcount(void);
+unsigned long prepare_ftrace_return(unsigned long parent, unsigned long ip);
 
 #endif /* _ASM_POWERPC_ASM_PROTOTYPES_H */
diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c
index 5c9f50c1aa99..32509de6ce4c 100644
--- a/arch/powerpc/kernel/ftrace.c
+++ b/arch/powerpc/kernel/ftrace.c
@@ -21,6 +21,7 @@
 #include <linux/init.h>
 #include <linux/list.h>
 
+#include <asm/asm-prototypes.h>
 #include <asm/cacheflush.h>
 #include <asm/code-patching.h>
 #include <asm/ftrace.h>



cheers


More information about the Linuxppc-dev mailing list