On Wed, Jan 16, 2019 at 02:15:18PM +0100, Arnd Bergmann wrote:
> Hi Heiko and Martin,
> 
> As promised, I gave this a go and changed the SYSCALL_DEFINEx()
> infrastructure to always include the wrappers for doing the
> 31-bit argument conversion on s390 compat mode.
> 
> This does three main things:
> 
> - The UID16 rework saved a lot of duplicated code, and would
>   probably make sense by itself, but is also required as
>   we can no longer call sys_*() functions directly after the
>   last step.
> 
> - Removing the compat_wrapper.c file is of course the main
>   goal here, in order to remove the need to maintain the
>   compat_wrapper.c file when new system calls get added.
>   Unfortunately, this requires adding some complexity in
>   syscall_wrapper.h, and trades a small reduction in source
>   code lines for a small increase in binary size for
>   unused wrappers.
> 
> - As an added benefit, the use of syscall_wrapper.h now makes
>   it easy to change the syscall wrappers so they no longer
>   see all user space register contents, similar to changes
>   done in commits fa697140f9a2 ("syscalls/x86: Use 'struct pt_regs'
>   based syscall calling convention for 64-bit syscalls") and
>   4378a7d4be30 ("arm64: implement syscall wrappers").
>   I leave the actual implementation of this for you, if you
>   want to do it later.
> 
> I did not test the changes at runtime, but I looked at the
> generated object code, which seems fine here and includes
> the same conversions as before.

This work is highly appreciated! I'll look into this tomorrow.

Thanks!

Reply via email to