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

From: Christophe Leroy
Date: Sun Feb 13 2022 - 13:29:46 EST




Le 13/02/2022 à 19:03, Aaron Tomlin a écrit :
> 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.

I'm not sure you can do that.

From commit 8c8ef42aee8f ("module: include other structures in module
version check") I understand that module_layout is there for some signature.


>
>> 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,
>