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.