diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2017-07-09 15:53:17 -0400 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2018-01-15 17:40:31 -0600 |
commit | b713da69e4c91d9addada4e58d26df1c9b5cd840 (patch) | |
tree | 3deb6d1cbf4106e07097754268eacef3386a1319 /arch/x86/kernel/signal_compat.c | |
parent | 4795477b2365e51c2eb5b8db65385b19ab2e0bbf (diff) | |
download | linux-b713da69e4c91d9addada4e58d26df1c9b5cd840.tar.gz linux-b713da69e4c91d9addada4e58d26df1c9b5cd840.tar.bz2 linux-b713da69e4c91d9addada4e58d26df1c9b5cd840.zip |
signal: unify compat_siginfo_t
--EWB Added #ifdef CONFIG_X86_X32_ABI to arch/x86/kernel/signal_compat.c
Changed #ifdef CONFIG_X86_X32 to #ifdef CONFIG_X86_X32_ABI in
linux/compat.h
CONFIG_X86_X32 is set when the user requests X32 support.
CONFIG_X86_X32_ABI is set when the user requests X32 support
and the tool-chain has X32 allowing X32 support to be built.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'arch/x86/kernel/signal_compat.c')
-rw-r--r-- | arch/x86/kernel/signal_compat.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/signal_compat.c b/arch/x86/kernel/signal_compat.c index 85425ea30661..27495909932d 100644 --- a/arch/x86/kernel/signal_compat.c +++ b/arch/x86/kernel/signal_compat.c @@ -75,9 +75,11 @@ static inline void signal_compat_build_tests(void) CHECK_CSI_SIZE (_sigchld, 5*sizeof(int)); CHECK_SI_SIZE (_sigchld, 8*sizeof(int)); +#ifdef CONFIG_X86_X32_ABI CHECK_CSI_OFFSET(_sigchld_x32); CHECK_CSI_SIZE (_sigchld_x32, 7*sizeof(int)); /* no _sigchld_x32 in the generic siginfo_t */ +#endif CHECK_CSI_OFFSET(_sigfault); CHECK_CSI_SIZE (_sigfault, 4*sizeof(int)); @@ -169,9 +171,11 @@ int __copy_siginfo_to_user32(compat_siginfo_t __user *to, const siginfo_t *from, if (!x32_ABI) { put_user_ex(from->si_utime, &to->si_utime); put_user_ex(from->si_stime, &to->si_stime); +#ifdef CONFIG_X86_X32_ABI } else { put_user_ex(from->si_utime, &to->_sifields._sigchld_x32._utime); put_user_ex(from->si_stime, &to->_sifields._sigchld_x32._stime); +#endif } put_user_ex(from->si_status, &to->si_status); /* FALL THROUGH */ |