On Mon, Apr 27, 2020 at 03:40:50PM -0700, Andrew Morton wrote: > > https://www.spinics.net/lists/kernel/msg3473847.html > > https://www.spinics.net/lists/kernel/msg3473840.html > > https://www.spinics.net/lists/kernel/msg3473843.html > > OK, but that doesn't necessitate the above monstrosity? How about > > static int __copy_siginfo_to_user32(struct compat_siginfo __user *to, > const struct kernel_siginfo *from, bool x32_ABI) > { > struct compat_siginfo new; > copy_siginfo_to_external32(&new, from); > ... > } > > int copy_siginfo_to_user32(struct compat_siginfo __user *to, > const struct kernel_siginfo *from) > { > #if defined(CONFIG_X86_X32_ABI) || defined(CONFIG_IA32_EMULATION) > return __copy_siginfo_to_user32(to, from, in_x32_syscall()); > #else > return __copy_siginfo_to_user32(to, from, 0); > #endif > } > > Or something like that - I didn't try very hard. We know how to do > this stuff, and surely this thing isn't how! I guess that might be a worthwhile middle ground. Still not a fan of all these ifdefs..