On Tue, Apr 14, 2020 at 9:02 AM Christoph Hellwig <hch@xxxxxx> wrote: > > Instead of messing with the address limit just open code the trivial > memcpy + memset logic for the native version, and a call to > to_compat_siginfo for the compat version. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Nice! > */ > #define user_long_t compat_long_t > #define user_siginfo_t compat_siginfo_t > -#define copy_siginfo_to_user copy_siginfo_to_user32 > +#define fill_siginfo_note(note, csigdata, siginfo) \ > +do { \ > + to_compat_siginfo(csigdata, siginfo, compat_siginfo_flags()); \ > + fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata); \ > +} while (0) I don't think you are changing the behavior here, but I still wonder if it is in fact correct for x32: is in_x32_syscall() true here when dumping an x32 compat elf process, or should this rather be set according to which binfmt_elf copy is being used? Arnd