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.