diff options
author | Ingo Molnar <mingo@kernel.org> | 2012-03-26 11:18:44 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-03-26 11:19:03 -0400 |
commit | 7fd52392c56361a40f0c630a82b36b95ca31eac6 (patch) | |
tree | 14091de24c6b28ea4cae9826f98aeedb7be091f5 /arch/s390/kernel/switch_cpu64.S | |
parent | b01c3a0010aabadf745f3e7fdb9cab682e0a28a2 (diff) | |
parent | e22057c8599373e5caef0bc42bdb95d2a361ab0d (diff) |
Merge branch 'linus' into perf/urgent
Merge reason: we need to fix a non-trivial merge conflict.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/s390/kernel/switch_cpu64.S')
-rw-r--r-- | arch/s390/kernel/switch_cpu64.S | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/arch/s390/kernel/switch_cpu64.S b/arch/s390/kernel/switch_cpu64.S deleted file mode 100644 index fcc42d799e41..000000000000 --- a/arch/s390/kernel/switch_cpu64.S +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | /* | ||
2 | * 64-bit switch cpu code | ||
3 | * | ||
4 | * Copyright IBM Corp. 2009 | ||
5 | * | ||
6 | */ | ||
7 | |||
8 | #include <linux/linkage.h> | ||
9 | #include <asm/asm-offsets.h> | ||
10 | #include <asm/ptrace.h> | ||
11 | |||
12 | # smp_switch_to_cpu switches to destination cpu and executes the passed function | ||
13 | # Parameter: %r2 - function to call | ||
14 | # %r3 - function parameter | ||
15 | # %r4 - stack poiner | ||
16 | # %r5 - current cpu | ||
17 | # %r6 - destination cpu | ||
18 | |||
19 | .section .text | ||
20 | ENTRY(smp_switch_to_cpu) | ||
21 | stmg %r6,%r15,__SF_GPRS(%r15) | ||
22 | lgr %r1,%r15 | ||
23 | aghi %r15,-STACK_FRAME_OVERHEAD | ||
24 | stg %r1,__SF_BACKCHAIN(%r15) | ||
25 | larl %r1,.gprregs | ||
26 | stmg %r0,%r15,0(%r1) | ||
27 | 1: sigp %r0,%r6,__SIGP_RESTART /* start destination CPU */ | ||
28 | brc 2,1b /* busy, try again */ | ||
29 | 2: sigp %r0,%r5,__SIGP_STOP /* stop current CPU */ | ||
30 | brc 2,2b /* busy, try again */ | ||
31 | 3: j 3b | ||
32 | |||
33 | ENTRY(smp_restart_cpu) | ||
34 | larl %r1,.gprregs | ||
35 | lmg %r0,%r15,0(%r1) | ||
36 | 1: sigp %r0,%r5,__SIGP_SENSE /* Wait for calling CPU */ | ||
37 | brc 10,1b /* busy, accepted (status 0), running */ | ||
38 | tmll %r0,0x40 /* Test if calling CPU is stopped */ | ||
39 | jz 1b | ||
40 | ltgr %r4,%r4 /* New stack ? */ | ||
41 | jz 1f | ||
42 | lgr %r15,%r4 | ||
43 | 1: lgr %r14,%r2 /* r14: Function to call */ | ||
44 | lgr %r2,%r3 /* r2 : Parameter for function*/ | ||
45 | basr %r14,%r14 /* Call function */ | ||
46 | |||
47 | .section .data,"aw",@progbits | ||
48 | .gprregs: | ||
49 | .rept 16 | ||
50 | .quad 0 | ||
51 | .endr | ||