Re: [PATCH v7 6/8] x86/module: prepare module loading for ROX allocations of text
Nathan Chancellor <[email protected]>
| Newsgroups | gmane.linux.ports.alpha,gmane.linux.kernel.bpf,gmane.linux.kernel.cross-arch,gmane.linux.ports.arm.kernel,gmane.linux.ports.hexagon,gmane.linux.kernel,gmane.linux.ports.mips,gmane.linux.kernel.mm,gmane.linux.kernel.modules,gmane.linux.ports.parisc,gmane.linux.ports.riscv,gmane.linux.ports.sh.devel,gmane.linux.kernel.arc,gmane.linux.uml.devel,gmane.linux.ports.ppc64.devel,gmane.linux.ports.sparc |
|---|---|
| Message-ID | <20241105190427.GA2903209@thelio-3990X> |
On Tue, Nov 05, 2024 at 09:02:26AM +0200, Mike Rapoport wrote: > There's a silly mistake in cfi_rewrite_endbr() in that commit, the patch > below should fix it. Can you please test? Yup, that was it! All my machines boot with this diff applied on top of next-20241105, so with that fixed, I think we are all good here. Tested-by: Nathan Chancellor <[email protected]> > diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c > index 3407efc26528..243843e44e89 100644 > --- a/arch/x86/kernel/alternative.c > +++ b/arch/x86/kernel/alternative.c > @@ -1241,7 +1241,7 @@ static void cfi_rewrite_endbr(s32 *start, s32 *end, struct module *mod) > void *addr = (void *)s + *s; > void *wr_addr = module_writable_address(mod, addr); > > - poison_endbr(addr+16, wr_addr, false); > + poison_endbr(addr + 16, wr_addr + 16, false); > } > } Cheers, Nathan