Re: [PATCH v5 13/13] module: Move version support into a separate file

From: Aaron Tomlin
Date: Sun Feb 13 2022 - 13:03:55 EST


On Thu 2022-02-10 14:28 +0000, Christophe Leroy wrote:
>
>
> Le 09/02/2022 à 18:11, Aaron Tomlin a écrit :
> > No functional change.
> >
> > This patch migrates module version support out of core code into
> > kernel/module/version.c. In addition simple code refactoring to
> > make this possible.
> >
> > Signed-off-by: Aaron Tomlin <atomlin@xxxxxxxxxx>
> > ---
> > kernel/module/Makefile | 1 +
> > kernel/module/internal.h | 50 +++++++++++++
> > kernel/module/main.c | 150 +--------------------------------------
> > kernel/module/version.c | 110 ++++++++++++++++++++++++++++
> > 4 files changed, 163 insertions(+), 148 deletions(-)
> > create mode 100644 kernel/module/version.c
>
> Sparse reports:
>
> CHECK kernel/module/version.c
> kernel/module/version.c:103:6: warning: symbol 'module_layout' was not
> declared. Should it be static?

The function module_layout() does not appear to be used. So, I've decided
to remove it.

> Checkpatch:
>
> total: 0 errors, 2 warnings, 3 checks, 337 lines checked

Ok.

> > +struct symsearch {
> > + const struct kernel_symbol *start, *stop;
> > + const s32 *crcs;
> > + enum mod_license {
> > + NOT_GPL_ONLY,
> > + GPL_ONLY,
> > + } license;
> > +};
>
> Why don't leave this in main.c ?

Yes, struct 'symsearch' is not used outside of kernel/module/main.c.

> > +inline int check_modstruct_version(const struct load_info *info,
> > + struct module *mod)
>
> inline is pointless for a non static function

This was an unfortunate oversight.

> > +inline int same_magic(const char *amagic, const char *bmagic,
> > + bool has_crcs)
>
> Same, not point for inline keyword here.

Agreed.


Kind regards,

--
Aaron Tomlin