s390/compat: build error for large compat syscall args
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Wed, 5 Mar 2014 11:55:06 +0000 (12:55 +0100)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Thu, 6 Mar 2014 15:30:47 +0000 (16:30 +0100)
commit9a205286bcca84b38d3ab1689f16236d1935af2d
tree22efb323509c3473f1a0af779194a72406cb819c
parent2f2728f6de9837abe4b354443a45be578fbbf942
s390/compat: build error for large compat syscall args

Enforce 32 bit types for all compat syscall argument types.

This way we can make sure that all arguments get correct sign
or zero extension. Otherwise incorrect code would be generated.

E.g. for a 'long' type the COMPAT_SYSCALL_DEFINE macro wouldn't
generate code that would cause sign extension of the passed in 32
bit user space parameter.
This can cause quite subtle bugs like e.g. the one that was fixed
with dfd948e32af2e "fs/compat: fix parameter handling for compat
readv/writev syscalls".

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
arch/s390/include/asm/compat.h