aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2018-02-22 07:42:29 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2018-02-22 08:08:51 -0500
commitd5feec04fe578c8dbd9e2e1439afc2f0af761ed4 (patch)
tree08b4ea1c0b3c9c7857774eb7534fa058629295c1
parent410d5e13e7638bc146321671e223d56495fbf3c7 (diff)
s390: do not bypass BPENTER for interrupt system calls
The system call path can be interrupted before the switch back to the standard branch prediction with BPENTER has been done. The critical section cleanup code skips forward to .Lsysc_do_svc and bypasses the BPENTER. In this case the kernel and all subsequent code will run with the limited branch prediction. Fixes: eacf67eb9b32 ("s390: run user space and KVM guests with modified branch prediction") Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/kernel/entry.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
index 9ec728fa832c..73492461c454 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -1440,6 +1440,7 @@ cleanup_critical:
1440 stg %r15,__LC_SYSTEM_TIMER 1440 stg %r15,__LC_SYSTEM_TIMER
14410: # update accounting time stamp 14410: # update accounting time stamp
1442 mvc __LC_LAST_UPDATE_TIMER(8),__LC_SYNC_ENTER_TIMER 1442 mvc __LC_LAST_UPDATE_TIMER(8),__LC_SYNC_ENTER_TIMER
1443 BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP
1443 # set up saved register r11 1444 # set up saved register r11
1444 lg %r15,__LC_KERNEL_STACK 1445 lg %r15,__LC_KERNEL_STACK
1445 la %r9,STACK_FRAME_OVERHEAD(%r15) 1446 la %r9,STACK_FRAME_OVERHEAD(%r15)