]> asedeno.scripts.mit.edu Git - linux.git/commit
s390/compat: automatic zero, sign and pointer conversion of syscalls
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Sat, 1 Mar 2014 12:45:03 +0000 (13:45 +0100)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 4 Mar 2014 08:12:24 +0000 (09:12 +0100)
commitab4f8bba19323eb78b7473df42b225eb14090fcc
tree2bda879b8d746516dec33d6a12e1c0953b0fa21d
parent2c81fc4fb41f589454861bbdb90ffde73840b8f8
s390/compat: automatic zero, sign and pointer conversion of syscalls

Instead of explicitly changing compat system call parameters from e.g.
unsigned long to compat_ulong_t let the COMPAT_SYSCALL_WRAP macros
automatically detect (unsigned) long parameters and zero and sign
extend them automatically.
The resulting binary is completely identical.

In addition add a sys_[system call name] prototype for each system call
wrapper. This will cause compile errors if the prototype does not match
the prototype in include/linux/syscall.h.
Therefore we should now always get the correct zero and sign extension
of system call parameters. Pointers are handled like before.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
arch/s390/kernel/compat_wrap.c
include/linux/syscalls.h