Re: [PATCH v2] arm64/module: use plt section indices for relocations
From: Miroslav Benes
Date: Tue Nov 06 2018 - 04:44:34 EST
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