lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAK7LNATkXFqKLPcHFg-WDynRrVy3BRs6twvcyo2YJQqZBy9xsQ@mail.gmail.com>
Date: Mon, 2 Jun 2025 16:49:24 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Alexey Gladkov <legion@...nel.org>
Cc: Petr Pavlu <petr.pavlu@...e.com>, Luis Chamberlain <mcgrof@...nel.org>, 
	Sami Tolvanen <samitolvanen@...gle.com>, Daniel Gomez <da.gomez@...sung.com>, 
	Nathan Chancellor <nathan@...nel.org>, Nicolas Schier <nicolas.schier@...ux.dev>, 
	linux-kernel@...r.kernel.org, linux-modules@...r.kernel.org, 
	linux-kbuild@...r.kernel.org
Subject: Re: [PATCH v3 2/6] modules: Add macros to specify modinfo prefix

On Tue, May 27, 2025 at 6:08 PM Alexey Gladkov <legion@...nel.org> wrote:
>
> The __MODULE_INFO macros always use __MODULE_INFO_PREFIX. The only way
> to use a different prefix is to override __MODULE_INFO_PREFIX, which is
> not very useful.

Not necessarily.
This would be a very special case only used in modpost,
and modpost can use MODULE_INFO() instead.


        list_for_each_entry_safe(alias, next, &mod->aliases, node) {
-               buf_printf(&buf, "MODULE_ALIAS_MODNAME(\"%s\", \"%s\");\n",
+               buf_printf(&buf, "MODULE_INFO(\"%s\".alias, \"%s\");\n",
                           alias->builtin_modname, alias->str);
                list_del(&alias->node);
                free(alias->builtin_modname);





> The new macro will be used in file2alias.c to generate modalias for
> builtin modules.
>
> Signed-off-by: Alexey Gladkov <legion@...nel.org>
> Reviewed-by: Petr Pavlu <petr.pavlu@...e.com>
> ---
>  include/linux/module.h      | 3 +++
>  include/linux/moduleparam.h | 7 +++++--
>  2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/module.h b/include/linux/module.h
> index 8050f77c3b64..88048561360f 100644
> --- a/include/linux/module.h
> +++ b/include/linux/module.h
> @@ -170,6 +170,9 @@ struct module_kobject *lookup_or_create_module_kobject(const char *name);
>  /* For userspace: you can also call me... */
>  #define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias)
>
> +#define MODULE_ALIAS_MODNAME(_modname, _alias) \
> +       __MODULE_INFO_WITH_PREFIX(_modname ".", alias, alias, _alias)
> +
>  /* Soft module dependencies. See man modprobe.d for details.
>   * Example: MODULE_SOFTDEP("pre: module-foo module-bar post: module-baz")
>   */
> diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
> index bfb85fd13e1f..3f819fc67c43 100644
> --- a/include/linux/moduleparam.h
> +++ b/include/linux/moduleparam.h
> @@ -20,10 +20,13 @@
>  /* Chosen so that structs with an unsigned long line up. */
>  #define MAX_PARAM_PREFIX_LEN (64 - sizeof(unsigned long))
>
> -#define __MODULE_INFO(tag, name, info)                                   \
> +#define __MODULE_INFO_WITH_PREFIX(prefix, tag, name, info)               \
>         static const char __UNIQUE_ID(name)[]                             \
>                 __used __section(".modinfo") __aligned(1)                 \
> -               = __MODULE_INFO_PREFIX __stringify(tag) "=" info
> +               = prefix __stringify(tag) "=" info
> +
> +#define __MODULE_INFO(tag, name, info)                                   \
> +       __MODULE_INFO_WITH_PREFIX(__MODULE_INFO_PREFIX, tag, name, info)
>
>  #define __MODULE_PARM_TYPE(name, _type)                                          \
>         __MODULE_INFO(parmtype, name##type, #name ":" _type)
> --
> 2.49.0
>


-- 
Best Regards
Masahiro Yamada

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ