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.
The new macro will be used in file2alias.c to generate modalias for builtin modules. Signed-off-by: Alexey Gladkov <leg...@kernel.org> Reviewed-by: Petr Pavlu <petr.pa...@suse.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