50 lines
1.8 KiB
Diff
50 lines
1.8 KiB
Diff
|
From aeea3592a13bf12861943e44fc48f1f270941f8d Mon Sep 17 00:00:00 2001
|
||
|
From: Behan Webster <behanw@converseincode.com>
|
||
|
Date: Wed, 24 Sep 2014 01:06:46 +0100
|
||
|
Subject: [PATCH] ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h
|
||
|
|
||
|
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 | 2 +-
|
||
|
arch/arm/kernel/return_address.c | 5 -----
|
||
|
2 files changed, 1 insertion(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/arch/arm/include/asm/ftrace.h b/arch/arm/include/asm/ftrace.h
|
||
|
index 39eb16b0066f2e..bfe2a2f5a644e8 100644
|
||
|
--- a/arch/arm/include/asm/ftrace.h
|
||
|
+++ b/arch/arm/include/asm/ftrace.h
|
||
|
@@ -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;
|
||
|
}
|
||
|
diff --git a/arch/arm/kernel/return_address.c b/arch/arm/kernel/return_address.c
|
||
|
index fafedd86885dde..f6aa84d5b93c93 100644
|
||
|
--- a/arch/arm/kernel/return_address.c
|
||
|
+++ b/arch/arm/kernel/return_address.c
|
||
|
@@ -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);
|