Re: [PATCH v4 06/10] modpost: Add modinfo flag to livepatch modules

From: Miroslav Benes
Date: Tue Aug 13 2019 - 06:26:26 EST


On Wed, 31 Jul 2019, Masahiro Yamada wrote:

> Hi Joe,
>
>
> On Thu, May 9, 2019 at 11:39 PM Joe Lawrence <joe.lawrence@xxxxxxxxxx> wrote:
> >
> > From: Miroslav Benes <mbenes@xxxxxxx>
> >
> > Currently, livepatch infrastructure in the kernel relies on
> > MODULE_INFO(livepatch, "Y") statement in a livepatch module. Then the
> > kernel module loader knows a module is indeed livepatch module and can
> > behave accordingly.
> >
> > klp-convert, on the other hand relies on LIVEPATCH_* statement in the
> > module's Makefile for exactly the same reason.
> >
> > Remove dependency on modinfo and generate MODULE_INFO flag
> > automatically in modpost when LIVEPATCH_* is defined in the module's
> > Makefile. Generate a list of all built livepatch modules based on
> > the .livepatch file and store it in (MODVERDIR)/livepatchmods. Give
> > this list as an argument for modpost which will use it to identify
> > livepatch modules.
> >
> > As MODULE_INFO is no longer needed, remove it.
>
>
> I do not understand this patch.
> This makes the implementation so complicated.
>
> I think MODULE_INFO(livepatch, "Y") is cleaner than
> LIVEPATCH_* in Makefile.
>
>
> How about this approach?
>
>
> [1] Make modpost generate the list of livepatch modules.
> (livepatch-modules)
>
> [2] Generate Symbols.list in scripts/Makefile.modpost
> (vmlinux + modules excluding livepatch-modules)
>
> [3] Run klp-convert for modules in livepatch-modules.
>
>
> If you do this, you can remove most of the build system hacks
> can't you?
>
>
> I attached an example implementation for [1].
>
> Please check whether this works.

Yes, it sounds like a better approach. I've never liked LIVEPATCH_* in
Makefile much, so I'm all for dropping it.

Thanks
Miroslav