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

Commit 9d6d99e3 authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

s390: wire up rseq system call

parent 8bf93550
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -160,6 +160,7 @@ config S390
	select HAVE_OPROFILE
	select HAVE_PERF_EVENTS
	select HAVE_REGS_AND_STACK_ACCESS_API
	select HAVE_RSEQ
	select HAVE_SYSCALL_TRACEPOINTS
	select HAVE_VIRT_CPU_ACCOUNTING
	select MODULES_USE_ELF_RELA
+1 −0
Original line number Diff line number Diff line
@@ -183,3 +183,4 @@ COMPAT_SYSCALL_WRAP2(s390_guarded_storage, int, command, struct gs_cb *, gs_cb);
COMPAT_SYSCALL_WRAP5(statx, int, dfd, const char __user *, path, unsigned, flags, unsigned, mask, struct statx __user *, buffer);
COMPAT_SYSCALL_WRAP4(s390_sthyi, unsigned long, code, void __user *, info, u64 __user *, rc, unsigned long, flags);
COMPAT_SYSCALL_WRAP5(kexec_file_load, int, kernel_fd, int, initrd_fd, unsigned long, cmdline_len, const char __user *, cmdline_ptr, unsigned long, flags)
COMPAT_SYSCALL_WRAP4(rseq, struct rseq __user *, rseq, u32, rseq_len, int, flags, u32, sig)
+4 −0
Original line number Diff line number Diff line
@@ -357,6 +357,10 @@ ENTRY(system_call)
	stg	%r2,__PT_R2(%r11)		# store return value

.Lsysc_return:
#ifdef CONFIG_DEBUG_RSEQ
	lgr	%r2,%r11
	brasl	%r14,rseq_syscall
#endif
	LOCKDEP_SYS_EXIT
.Lsysc_tif:
	TSTMSK	__PT_FLAGS(%r11),_PIF_WORK
+2 −1
Original line number Diff line number Diff line
@@ -498,7 +498,7 @@ void do_signal(struct pt_regs *regs)
		}
		/* No longer in a system call */
		clear_pt_regs_flag(regs, PIF_SYSCALL);

		rseq_signal_deliver(&ksig, regs);
		if (is_compat_task())
			handle_signal32(&ksig, oldset, regs);
		else
@@ -537,4 +537,5 @@ void do_notify_resume(struct pt_regs *regs)
{
	clear_thread_flag(TIF_NOTIFY_RESUME);
	tracehook_notify_resume(regs);
	rseq_handle_notify_resume(NULL, regs);
}
+1 −0
Original line number Diff line number Diff line
@@ -390,3 +390,4 @@
380  common	s390_sthyi		sys_s390_sthyi			compat_sys_s390_sthyi
381  common	kexec_file_load		sys_kexec_file_load		compat_sys_kexec_file_load
382  common	io_pgetevents		sys_io_pgetevents		compat_sys_io_pgetevents
383  common	rseq			sys_rseq			compat_sys_rseq