ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h
authorBehan Webster <behanw@converseincode.com>
Wed, 24 Sep 2014 00:06:46 +0000 (01:06 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 26 Sep 2014 13:40:03 +0000 (14:40 +0100)
With compilers which follow the C99 standard (like modern versions of gcc and
clang), "extern inline" does the wrong thing (emits code for an externally
linkable version of the inline function). In this case using static inline
and removing the NULL version of return_address in return_address.c does
the right thing.

Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/ftrace.h
arch/arm/kernel/return_address.c

index 39eb16b0066f2e4acb7464f1a3766fba9c7ddeeb..bfe2a2f5a644e80a9f80f71b49d727604c41e728 100644 (file)
@@ -45,7 +45,7 @@ void *return_address(unsigned int);
 
 #else
 
-extern inline void *return_address(unsigned int level)
+static inline void *return_address(unsigned int level)
 {
        return NULL;
 }
index fafedd86885ddeb22c232a373239dd17ba620d3a..f6aa84d5b93c93ea65f5cbf1329624fad6e1058e 100644 (file)
@@ -63,11 +63,6 @@ void *return_address(unsigned int level)
 #warning "TODO: return_address should use unwind tables"
 #endif
 
-void *return_address(unsigned int level)
-{
-       return NULL;
-}
-
 #endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) / else */
 
 EXPORT_SYMBOL_GPL(return_address);