Messages in this thread | | | Date | Fri, 25 Feb 2022 09:26:44 -0800 | From | Josh Poimboeuf <> | Subject | Re: [PATCH v2 00/39] x86: Kernel IBT |
| |
On Fri, Feb 25, 2022 at 04:43:20PM +0100, Peter Zijlstra wrote: > On Fri, Feb 25, 2022 at 04:28:32PM +0100, Peter Zijlstra wrote: > > +void *skip_endbr(void *addr) > > +{ > > + unsigned long size, offset; > > + > > + if (is_endbr(*(unsigned int *)addr) && > > + kallsyms_lookup_size_offset((unsigned long)addr, &size, &offset) && > > + !offset) > > + addr += 4; > > + > > + return addr; > > +} > > Damn, I just realized this makes KERNEL_IBT hard depend on KALLSYMS :-(
Why should the jump label patching code even care whether there's an ENDBR at the jump target? It should never jump to the beginning of a function anyway, right? And objtool presumably doesn't patch out ENDBRs in the middle of a function.
-- Josh
| |