aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/swsusp_asm64.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/swsusp_asm64.S')
-rw-r--r--arch/s390/kernel/swsusp_asm64.S13
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/s390/kernel/swsusp_asm64.S b/arch/s390/kernel/swsusp_asm64.S
index dd70ef046058..d4ca4e0617b5 100644
--- a/arch/s390/kernel/swsusp_asm64.S
+++ b/arch/s390/kernel/swsusp_asm64.S
@@ -12,6 +12,7 @@
12#include <asm/ptrace.h> 12#include <asm/ptrace.h>
13#include <asm/thread_info.h> 13#include <asm/thread_info.h>
14#include <asm/asm-offsets.h> 14#include <asm/asm-offsets.h>
15#include <asm/sigp.h>
15 16
16/* 17/*
17 * Save register context in absolute 0 lowcore and call swsusp_save() to 18 * Save register context in absolute 0 lowcore and call swsusp_save() to
@@ -163,7 +164,7 @@ ENTRY(swsusp_arch_resume)
163 diag %r0,%r0,0x308 164 diag %r0,%r0,0x308
164restart_entry: 165restart_entry:
165 lhi %r1,1 166 lhi %r1,1
166 sigp %r1,%r0,0x12 167 sigp %r1,%r0,SIGP_SET_ARCHITECTURE
167 sam64 168 sam64
168 larl %r1,.Lnew_pgm_check_psw 169 larl %r1,.Lnew_pgm_check_psw
169 lpswe 0(%r1) 170 lpswe 0(%r1)
@@ -179,7 +180,7 @@ pgm_check_entry:
179 larl %r4,.Lrestart_suspend_psw /* Set new restart PSW */ 180 larl %r4,.Lrestart_suspend_psw /* Set new restart PSW */
180 mvc __LC_RST_NEW_PSW(16,%r0),0(%r4) 181 mvc __LC_RST_NEW_PSW(16,%r0),0(%r4)
1813: 1823:
182 sigp %r9,%r1,11 /* sigp initial cpu reset */ 183 sigp %r9,%r1,SIGP_INITIAL_CPU_RESET /* sigp initial cpu reset */
183 brc 8,4f /* accepted */ 184 brc 8,4f /* accepted */
184 brc 2,3b /* busy, try again */ 185 brc 2,3b /* busy, try again */
185 186
@@ -190,16 +191,16 @@ pgm_check_entry:
190 larl %r3,_sclp_print_early 191 larl %r3,_sclp_print_early
191 lghi %r1,0 192 lghi %r1,0
192 sam31 193 sam31
193 sigp %r1,%r0,0x12 194 sigp %r1,%r0,SIGP_SET_ARCHITECTURE
194 basr %r14,%r3 195 basr %r14,%r3
195 larl %r3,.Ldisabled_wait_31 196 larl %r3,.Ldisabled_wait_31
196 lpsw 0(%r3) 197 lpsw 0(%r3)
1974: 1984:
198 /* Switch to suspend CPU */ 199 /* Switch to suspend CPU */
199 sigp %r9,%r1,6 /* sigp restart to suspend CPU */ 200 sigp %r9,%r1,SIGP_RESTART /* sigp restart to suspend CPU */
200 brc 2,4b /* busy, try again */ 201 brc 2,4b /* busy, try again */
2015: 2025:
202 sigp %r9,%r2,5 /* sigp stop to current resume CPU */ 203 sigp %r9,%r2,SIGP_STOP /* sigp stop to current resume CPU */
203 brc 2,5b /* busy, try again */ 204 brc 2,5b /* busy, try again */
2046: j 6b 2056: j 6b
205 206
@@ -207,7 +208,7 @@ restart_suspend:
207 larl %r1,.Lresume_cpu 208 larl %r1,.Lresume_cpu
208 llgh %r2,0(%r1) 209 llgh %r2,0(%r1)
2097: 2107:
210 sigp %r9,%r2,1 /* sigp sense, wait for resume CPU */ 211 sigp %r9,%r2,SIGP_SENSE /* sigp sense, wait for resume CPU */
211 brc 8,7b /* accepted, status 0, still running */ 212 brc 8,7b /* accepted, status 0, still running */
212 brc 2,7b /* busy, try again */ 213 brc 2,7b /* busy, try again */
213 tmll %r9,0x40 /* Test if resume CPU is stopped */ 214 tmll %r9,0x40 /* Test if resume CPU is stopped */