On Thu, Jan 10, 2019 at 06:22:12PM +0100, Arnd Bergmann wrote:
diff --git a/arch/s390/kernel/syscalls/syscall.tbl b/arch/s390/kernel/syscalls/syscall.tbl index f84ea364a302..b3199a744731 100644 --- a/arch/s390/kernel/syscalls/syscall.tbl +++ b/arch/s390/kernel/syscalls/syscall.tbl @@ -20,7 +20,7 @@ 10 common unlink sys_unlink compat_sys_unlink 11 common execve sys_execve compat_sys_execve 12 common chdir sys_chdir compat_sys_chdir -13 32 time - compat_sys_time +13 32 time - sys_time32 14 common mknod sys_mknod compat_sys_mknod 15 common chmod sys_chmod compat_sys_chmod 16 32 lchown - compat_sys_s390_lchown16 @@ -30,11 +30,11 @@ 22 common umount sys_oldumount compat_sys_oldumount 23 32 setuid - compat_sys_s390_setuid16 24 32 getuid - compat_sys_s390_getuid16 -25 32 stime - compat_sys_stime +25 32 stime - sys_stime32 26 common ptrace sys_ptrace compat_sys_ptrace 27 common alarm sys_alarm sys_alarm 29 common pause sys_pause sys_pause -30 common utime sys_utime compat_sys_utime +30 common utime sys_utime sys_utime32
...(and more)...
All of them need compat wrappers to clear the uppermost 33 bits of user space pointers. I assume there is no new *32 system call which takes u64/s64 arguments; so the pointers should be the only problem.