Dave Hansen <dave.hansen@xxxxxxxxx> writes: > On 03/16/2018 12:00 PM, Dave Hansen wrote: >> On 01/15/2018 04:40 PM, Eric W. Biederman wrote: >>> The addr_lsb fields is only valid and available when the >>> signal is SIGBUS and the si_code is BUS_MCEERR_AR or BUS_MCEERR_AO. >>> Document this with a comment and place the field in the _sigfault union >>> to make this clear. >>> >>> All of the fields stay in the same physical location so both the old >>> and new definitions of struct siginfo will continue to work. >> >> This breaks the ABI and breaks protection keys. The physical locations >> *DO* change. >> >> Before this patch: >> >> #define si_pkey _sifields._sigfault._pkey >> (gdb) print &((siginfo_t *)0)->_sifields._sigfault._pkey >> $1 = (__u32 *) 0x20 <irq_stack_union+32> >> >> and after: >> >> +#define si_pkey _sifields._sigfault._addr_pkey._pkey >> (gdb) print &((siginfo_t *)0)->_sifields._sigfault._addr_pkey._pkey >> $1 = (__u32 *) 0x1c >> >> Can we revert this, please? > > It does not revert cleanly so I reverted it manually. Patch doing that > is attached. Should we do this, or is there a better option? Please see: 859d880cf544 ("signal: Correct the offset of si_pkey in struct siginfo") Eric