···6262 int _imm; /* immediate value for "break" */6363 unsigned int _flags; /* see below */6464 unsigned long _isr; /* isr */6565+ short _addr_lsb; /* lsb of faulting address */6566 } _sigfault;66676768 /* SIGPOLL */
+10
fs/signalfd.c
···9999#ifdef __ARCH_SI_TRAPNO100100 err |= __put_user(kinfo->si_trapno, &uinfo->ssi_trapno);101101#endif102102+#ifdef BUS_MCEERR_AO103103+ /* 104104+ * Other callers might not initialize the si_lsb field,105105+ * so check explicitly for the right codes here.106106+ */107107+ if (kinfo->si_code == BUS_MCEERR_AR ||108108+ kinfo->si_code == BUS_MCEERR_AO)109109+ err |= __put_user((short) kinfo->si_addr_lsb,110110+ &uinfo->ssi_addr_lsb);111111+#endif102112 break;103113 case __SI_CHLD:104114 err |= __put_user(kinfo->si_pid, &uinfo->ssi_pid);
+2-1
include/linux/signalfd.h
···3333 __u64 ssi_utime;3434 __u64 ssi_stime;3535 __u64 ssi_addr;3636+ __u16 ssi_addr_lsb;36373738 /*3839 * Pad strcture to 128 bytes. Remember to update the···4443 * comes out of a read(2) and we really don't want to have4544 * a compat on read(2).4645 */4747- __u8 __pad[48];4646+ __u8 __pad[46];4847};49485049