aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2009-03-18 08:27:34 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-03-18 08:28:12 -0400
commitcf087343805ebfea2b1234b06fd5f12273e865b1 (patch)
treeef8638ea143240ca45df1af83a05c4b98c9ab509 /arch/s390/kernel
parentf55d63854e426e95d7858c2662c2353262a5af70 (diff)
[S390] ftrace/mcount: fix kernel stack backchain
With packed stack the backchain is at a different location. Just use __SF_BACKCHAIN as an offset to store the backchain. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r--arch/s390/kernel/mcount.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/s390/kernel/mcount.S b/arch/s390/kernel/mcount.S
index 397d131a345f..80641224a095 100644
--- a/arch/s390/kernel/mcount.S
+++ b/arch/s390/kernel/mcount.S
@@ -5,6 +5,8 @@
5 * 5 *
6 */ 6 */
7 7
8#include <asm/asm-offsets.h>
9
8#ifndef CONFIG_64BIT 10#ifndef CONFIG_64BIT
9.globl _mcount 11.globl _mcount
10_mcount: 12_mcount:
@@ -14,7 +16,7 @@ _mcount:
14 ahi %r15,-96 16 ahi %r15,-96
15 l %r3,100(%r15) 17 l %r3,100(%r15)
16 la %r2,0(%r14) 18 la %r2,0(%r14)
17 st %r1,0(%r15) 19 st %r1,__SF_BACKCHAIN(%r15)
18 la %r3,0(%r3) 20 la %r3,0(%r3)
19 bras %r14,0f 21 bras %r14,0f
20 .long ftrace_trace_function 22 .long ftrace_trace_function
@@ -38,7 +40,7 @@ _mcount:
38 stg %r14,112(%r15) 40 stg %r14,112(%r15)
39 lgr %r1,%r15 41 lgr %r1,%r15
40 aghi %r15,-160 42 aghi %r15,-160
41 stg %r1,0(%r15) 43 stg %r1,__SF_BACKCHAIN(%r15)
42 lgr %r2,%r14 44 lgr %r2,%r14
43 lg %r3,168(%r15) 45 lg %r3,168(%r15)
44 larl %r14,ftrace_trace_function 46 larl %r14,ftrace_trace_function