summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/entry.S
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2013-09-27 15:24:38 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2013-09-30 13:04:40 +0200
commitdbbfe487e5f3fc00c9fe5207d63309859704d12f (patch)
treeafa7a57191434a8838f450986ca5a22b255990d7 /arch/s390/kernel/entry.S
parent4d3b0664a0d0c0dc7501cfbd067f74226aeca510 (diff)
downloadop-kernel-dev-dbbfe487e5f3fc00c9fe5207d63309859704d12f.zip
op-kernel-dev-dbbfe487e5f3fc00c9fe5207d63309859704d12f.tar.gz
s390: fix system call restart after inferior call
Git commit 616498813b11ffef "s390: system call path micro optimization" introduced a regression in regard to system call restarting and inferior function calls via the ptrace interface. The pointer to the system call table needs to be loaded in sysc_sigpending if do_signal returns with TIF_SYSCALl set after it restored a system call context. Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/entry.S')
-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 cc30d1f..0dc2b6d 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -266,6 +266,7 @@ sysc_sigpending:
tm __TI_flags+3(%r12),_TIF_SYSCALL
jno sysc_return
lm %r2,%r7,__PT_R2(%r11) # load svc arguments
+ l %r10,__TI_sysc_table(%r12) # 31 bit system call table
xr %r8,%r8 # svc 0 returns -ENOSYS
clc __PT_INT_CODE+2(2,%r11),BASED(.Lnr_syscalls+2)
jnl sysc_nr_ok # invalid svc number -> do svc 0
OpenPOWER on IntegriCloud