Re: samples: livepatch: init reloc list and mark as klp module
From: Miroslav Benes
Date: Thu Nov 12 2015 - 05:45:42 EST
On Thu, 12 Nov 2015, Jessica Yu wrote:
> +++ Petr Mladek [11/11/15 16:42 +0100]:
> > On Mon 2015-11-09 23:45:54, Jessica Yu wrote:
> > > Intialize the list of relocation sections in the sample
> > > klp_object (even if the list will be empty in this case).
> > > Also mark module as a livepatch module so that the module
> > > loader can appropriately initialize it.
> > >
> > > Signed-off-by: Jessica Yu <jeyu@xxxxxxxxxx>
> > > ---
> > > samples/livepatch/livepatch-sample.c | 2 ++
> > > 1 file changed, 2 insertions(+)
> > >
> > > diff --git a/samples/livepatch/livepatch-sample.c
> > > b/samples/livepatch/livepatch-sample.c
> > > index fb8c861..2ef9345 100644
> > > --- a/samples/livepatch/livepatch-sample.c
> > > +++ b/samples/livepatch/livepatch-sample.c
> > > @@ -89,3 +90,4 @@ static void livepatch_exit(void)
> > > module_init(livepatch_init);
> > > module_exit(livepatch_exit);
> > > MODULE_LICENSE("GPL");
> > > +MODULE_INFO(livepatch, "Y");
> >
> > This looks a bit error prone. I wonder if we could detect this
> > information another way. For example, by a check for the
> > livepatch-related elf sections. If it is missing,
> > we do not need to preserve struct load_info even
> > when it is a livepatch.
>
> Yeah, I agree that it is unnecessary for a livepatch module without
> reloc secs to keep a copy of the load_info struct. My justification
> for using MODULE_INFO is that I was trying to be consistent with the
> way how other module "characteristics" are checked in the module
> loader. For example, if the module came from the staging tree, the
> module loader simply checks get_modinfo(info, "staging")). If the
> module is a livepatch module, we check get_modinfo(info,
> "livepatch")). I also thought that it might be useful additional
> information for the user to be able to issue the modinfo command on a
> module to see if it's a livepatch module or not (but maybe this
> information won't be so useful after all, that's quite subjective).
Yup, in my opinion this is a good way to do it. We already impose quite a
lot on a patch module and this does not make a big difference. Easy
identification of a patch module is good bonus as well.
> But if we want to do a more thorough check, we could, like you said,
> check for the livepatch-related elf sections before copying load_info.
I wouldn't do that. It could be even more error prone.
I'd like to think that we can live with load_info struct even for patch
modules which do not use relocations. Don't know.
Miroslav
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/