----- On Feb 6, 2022, at 4:49 PM, Peter Zijlstra peterz@xxxxxxxxxxxxx wrote: > On Thu, Feb 03, 2022 at 02:38:51PM -0500, Mathieu Desnoyers wrote: > >> @@ -286,6 +287,10 @@ create_elf_tables(struct linux_binprm *bprm, const struct >> elfhdr *exec, >> if (bprm->have_execfd) { >> NEW_AUX_ENT(AT_EXECFD, bprm->execfd); >> } >> +#ifdef CONFIG_RSEQ >> + NEW_AUX_ENT(AT_RSEQ_FEATURE_SIZE, offsetof(struct rseq, end)); > > I've gotta ask, what's up with offsetof(, end) vs sizeof() ? sizeof() includes the 12 bytes of padding at the end of struct rseq, for a total of 32 bytes (currently). offsetof(, end) is currently 20 bytes, which is the offset exactly after the last field. For the "feature size" (meaning the populated fields), we really want a size that excludes padding. Thanks, Mathieu > >> + NEW_AUX_ENT(AT_RSEQ_ALIGN, __alignof__(struct rseq)); > > +#endif -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com