diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2016-05-02 15:38:29 +0300 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2016-05-04 17:29:45 +0300 |
commit | 5606330627ab680f5e6b7549d14ec3ffdae58c15 (patch) | |
tree | 5766fa5aa8375263757f24819219175ccf8cfaa5 /arch/s390/include/asm/ftrace.h | |
parent | e18eb2d1eb03fa06ccb7823a44d7ceea621e2bbb (diff) | |
download | linux-5606330627ab680f5e6b7549d14ec3ffdae58c15.tar.xz |
s390/dumpstack: implement and use return_address()
Implement return_address() and use it instead of __builtin_return_address(n).
__builtin_return_address(n) is not guaranteed to work for n > 0,
therefore implement a private return_address() function which walks
the stack frames and returns the proper return address.
This way we get also rid of a compile warning which gcc 6.1 emits and
look like all other architectures.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/ftrace.h')
-rw-r--r-- | arch/s390/include/asm/ftrace.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/s390/include/asm/ftrace.h b/arch/s390/include/asm/ftrace.h index 836c56290499..64053d9ac3f2 100644 --- a/arch/s390/include/asm/ftrace.h +++ b/arch/s390/include/asm/ftrace.h @@ -12,7 +12,9 @@ #ifndef __ASSEMBLY__ -#define ftrace_return_address(n) __builtin_return_address(n) +unsigned long return_address(int depth); + +#define ftrace_return_address(n) return_address(n) void _mcount(void); void ftrace_caller(void); |