On Mon, 5 Nov 2018, Will Deacon wrote: > On Mon, Nov 05, 2018 at 07:53:23PM +0100, Jessica Yu wrote: > > Instead of saving a pointer to the .plt and .init.plt sections to apply > > plt-based relocations, save and use their section indices instead. > > > > The mod->arch.{core,init}.plt pointers were problematic for livepatch > > because they pointed within temporary section headers (provided by the > > module loader via info->sechdrs) that would be freed after module load. > > Since livepatch modules may need to apply relocations post-module-load > > (for example, to patch a module that is loaded later), using section > > indices to offset into the section headers (instead of accessing them > > through a saved pointer) allows livepatch modules on arm64 to pass in > > their own copy of the section headers to apply_relocate_add() to apply > > delayed relocations. > > > > Signed-off-by: Jessica Yu <jeyu@xxxxxxxxxx> > > --- > > > > v2: > > > > - Do sechdrs[pltsec->plt_shndx].sh_addr instead of pointer math > > > > Note: Addressed Will's comment about the pltsec -> plt_info rename and > > removed that change to reduce unnecessary code churn. I didn't include the > > Ack's for this reason so let me know if this version is OK as well. > > Thanks, Jessica! > > Acked-by: Will Deacon <will.deacon@xxxxxxx> > > > arch/arm64/include/asm/module.h | 8 +++++--- > > arch/arm64/kernel/module-plts.c | 36 ++++++++++++++++++++---------------- > > arch/arm64/kernel/module.c | 9 +++++---- > > 3 files changed, 30 insertions(+), 23 deletions(-) > > Actually, I guess I should just queue this for 4.21 given that it's > completely self-contained. FWIW you can also add my Reviewed-by: Miroslav Benes <mbenes@xxxxxxx> Thanks, Jessica. Miroslav