Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dbbfe487 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

s390: fix system call restart after inferior call



Git commit 61649881 "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: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 4d3b0664
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -266,6 +266,7 @@ sysc_sigpending:
	tm	__TI_flags+3(%r12),_TIF_SYSCALL
	tm	__TI_flags+3(%r12),_TIF_SYSCALL
	jno	sysc_return
	jno	sysc_return
	lm	%r2,%r7,__PT_R2(%r11)	# load svc arguments
	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
	xr	%r8,%r8			# svc 0 returns -ENOSYS
	clc	__PT_INT_CODE+2(2,%r11),BASED(.Lnr_syscalls+2)
	clc	__PT_INT_CODE+2(2,%r11),BASED(.Lnr_syscalls+2)
	jnl	sysc_nr_ok		# invalid svc number -> do svc 0
	jnl	sysc_nr_ok		# invalid svc number -> do svc 0
+1 −0
Original line number Original line Diff line number Diff line
@@ -297,6 +297,7 @@ sysc_sigpending:
	tm	__TI_flags+7(%r12),_TIF_SYSCALL
	tm	__TI_flags+7(%r12),_TIF_SYSCALL
	jno	sysc_return
	jno	sysc_return
	lmg	%r2,%r7,__PT_R2(%r11)	# load svc arguments
	lmg	%r2,%r7,__PT_R2(%r11)	# load svc arguments
	lg	%r10,__TI_sysc_table(%r12)	# address of system call table
	lghi	%r8,0			# svc 0 returns -ENOSYS
	lghi	%r8,0			# svc 0 returns -ENOSYS
	llgh	%r1,__PT_INT_CODE+2(%r11)	# load new svc number
	llgh	%r1,__PT_INT_CODE+2(%r11)	# load new svc number
	cghi	%r1,NR_syscalls
	cghi	%r1,NR_syscalls