summaryrefslogtreecommitdiff
path: root/arch/s390/kernel/swsusp_asm64.S
diff options
context:
space:
mode:
authorChris Zankel <chris@zankel.net>2015-04-14 03:51:35 +0000
committerChris Zankel <chris@zankel.net>2015-04-14 03:51:35 +0000
commit7ead5b7e4a3cf4a16579a8f164022345b93fe972 (patch)
tree0a9b9497f53d1593c9e2ac197b2e686ea74a9975 /arch/s390/kernel/swsusp_asm64.S
parent834a316eeebcb75316c0a7d9088fa638c52dc584 (diff)
parent39a8804455fb23f09157341d3ba7db6d7ae6ee76 (diff)
Merge tag 'v4.0' into for_next
Linux 4.0
Diffstat (limited to 'arch/s390/kernel/swsusp_asm64.S')
-rw-r--r--arch/s390/kernel/swsusp_asm64.S11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/s390/kernel/swsusp_asm64.S b/arch/s390/kernel/swsusp_asm64.S
index 6b09fdffbd2f..ca6294645dd3 100644
--- a/arch/s390/kernel/swsusp_asm64.S
+++ b/arch/s390/kernel/swsusp_asm64.S
@@ -177,6 +177,17 @@ restart_entry:
lhi %r1,1
sigp %r1,%r0,SIGP_SET_ARCHITECTURE
sam64
+#ifdef CONFIG_SMP
+ larl %r1,smp_cpu_mt_shift
+ icm %r1,15,0(%r1)
+ jz smt_done
+ llgfr %r1,%r1
+smt_loop:
+ sigp %r1,%r0,SIGP_SET_MULTI_THREADING
+ brc 8,smt_done /* accepted */
+ brc 2,smt_loop /* busy, try again */
+smt_done:
+#endif
larl %r1,.Lnew_pgm_check_psw
lpswe 0(%r1)
pgm_check_entry: