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

Commit ddf343f6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 patches from Martin Schwidefsky:
 "Included are bug fixes and a patch to enable system call filtering
  with BPF."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/compat: fix mmap compat system calls
  s390/compat: fix compat wrappers for process_vm system calls
  s390: do not clobber personality flags in sys_32_personality()
  s390/seccomp: add support for system call filtering using BPF
  s390/sclp_sdias: Add missing break and "fall through"
  s390/mm: remove MAX_PHYSADDR_BITS define
parents 930a93a5 e8587121
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@ config S390
	select GENERIC_TIME_VSYSCALL
	select GENERIC_CLOCKEVENTS
	select KTIME_SCALAR if 32BIT
	select HAVE_ARCH_SECCOMP_FILTER

config SCHED_OMIT_FRAME_POINTER
	def_bool y
+0 −2
Original line number Diff line number Diff line
@@ -4,13 +4,11 @@
#ifdef CONFIG_64BIT

#define SECTION_SIZE_BITS	28
#define MAX_PHYSADDR_BITS	46
#define MAX_PHYSMEM_BITS	46

#else

#define SECTION_SIZE_BITS	25
#define MAX_PHYSADDR_BITS	31
#define MAX_PHYSMEM_BITS	31

#endif /* CONFIG_64BIT */
+10 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
#ifndef _ASM_SYSCALL_H
#define _ASM_SYSCALL_H	1

#include <linux/audit.h>
#include <linux/sched.h>
#include <linux/err.h>
#include <asm/ptrace.h>
@@ -87,4 +88,13 @@ static inline void syscall_set_arguments(struct task_struct *task,
		regs->orig_gpr2 = args[0];
}

static inline int syscall_get_arch(struct task_struct *task,
				   struct pt_regs *regs)
{
#ifdef CONFIG_COMPAT
	if (test_tsk_thread_flag(task, TIF_31BIT))
		return AUDIT_ARCH_S390;
#endif
	return sizeof(long) == 8 ? AUDIT_ARCH_S390X : AUDIT_ARCH_S390;
}
#endif	/* _ASM_SYSCALL_H */
+0 −2
Original line number Diff line number Diff line
@@ -620,7 +620,6 @@ asmlinkage unsigned long old32_mmap(struct mmap_arg_struct_emu31 __user *arg)
		return -EFAULT;
	if (a.offset & ~PAGE_MASK)
		return -EINVAL;
	a.addr = (unsigned long) compat_ptr(a.addr);
	return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd,
			      a.offset >> PAGE_SHIFT);
}
@@ -631,7 +630,6 @@ asmlinkage long sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg)

	if (copy_from_user(&a, arg, sizeof(a)))
		return -EFAULT;
	a.addr = (unsigned long) compat_ptr(a.addr);
	return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset);
}

+2 −2
Original line number Diff line number Diff line
@@ -1635,7 +1635,7 @@ ENTRY(compat_sys_process_vm_readv_wrapper)
	llgfr	%r6,%r6			# unsigned long
	llgf	%r0,164(%r15)		# unsigned long
	stg	%r0,160(%r15)
	jg	sys_process_vm_readv
	jg	compat_sys_process_vm_readv

ENTRY(compat_sys_process_vm_writev_wrapper)
	lgfr	%r2,%r2			# compat_pid_t
@@ -1645,4 +1645,4 @@ ENTRY(compat_sys_process_vm_writev_wrapper)
	llgfr	%r6,%r6			# unsigned long
	llgf	%r0,164(%r15)		# unsigned long
	stg	%r0,160(%r15)
	jg	sys_process_vm_writev
	jg	compat_sys_process_vm_writev
Loading