Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

module: remove meaningless 'name' parameter from __MODULE_INFO()

The symbol names in the .modinfo section are never used and already
randomized by the __UNIQUE_ID() macro.

Therefore, the second parameter of __MODULE_INFO() is meaningless
and can be removed to simplify the code.

With this change, the symbol names in the .modinfo section will be
prefixed with __UNIQUE_ID_modinfo, making it clearer that they
originate from MODULE_INFO().

[Before]

$ objcopy -j .modinfo vmlinux.o modinfo.o
$ nm -n modinfo.o | head -n10
0000000000000000 r __UNIQUE_ID_license560
0000000000000011 r __UNIQUE_ID_file559
0000000000000030 r __UNIQUE_ID_description558
0000000000000074 r __UNIQUE_ID_license580
000000000000008e r __UNIQUE_ID_file579
00000000000000bd r __UNIQUE_ID_description578
00000000000000e6 r __UNIQUE_ID_license581
00000000000000ff r __UNIQUE_ID_file580
0000000000000134 r __UNIQUE_ID_description579
0000000000000179 r __UNIQUE_ID_uncore_no_discover578

[After]

$ objcopy -j .modinfo vmlinux.o modinfo.o
$ nm -n modinfo.o | head -n10
0000000000000000 r __UNIQUE_ID_modinfo560
0000000000000011 r __UNIQUE_ID_modinfo559
0000000000000030 r __UNIQUE_ID_modinfo558
0000000000000074 r __UNIQUE_ID_modinfo580
000000000000008e r __UNIQUE_ID_modinfo579
00000000000000bd r __UNIQUE_ID_modinfo578
00000000000000e6 r __UNIQUE_ID_modinfo581
00000000000000ff r __UNIQUE_ID_modinfo580
0000000000000134 r __UNIQUE_ID_modinfo579
0000000000000179 r __UNIQUE_ID_modinfo578

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Petr Pavlu <petr.pavlu@suse.com>

+9 -11
+2 -2
include/crypto/algapi.h
··· 43 43 * alias. 44 44 */ 45 45 #define MODULE_ALIAS_CRYPTO(name) \ 46 - __MODULE_INFO(alias, alias_userspace, name); \ 47 - __MODULE_INFO(alias, alias_crypto, "crypto-" name) 46 + MODULE_INFO(alias, name); \ 47 + MODULE_INFO(alias, "crypto-" name) 48 48 49 49 struct crypto_aead; 50 50 struct crypto_instance;
-3
include/linux/module.h
··· 164 164 165 165 struct module_kobject *lookup_or_create_module_kobject(const char *name); 166 166 167 - /* Generic info of form tag = "info" */ 168 - #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) 169 - 170 167 /* For userspace: you can also call me... */ 171 168 #define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias) 172 169
+5 -4
include/linux/moduleparam.h
··· 20 20 /* Chosen so that structs with an unsigned long line up. */ 21 21 #define MAX_PARAM_PREFIX_LEN (64 - sizeof(unsigned long)) 22 22 23 - #define __MODULE_INFO(tag, name, info) \ 24 - static const char __UNIQUE_ID(name)[] \ 23 + /* Generic info of form tag = "info" */ 24 + #define MODULE_INFO(tag, info) \ 25 + static const char __UNIQUE_ID(modinfo)[] \ 25 26 __used __section(".modinfo") __aligned(1) \ 26 27 = __MODULE_INFO_PREFIX __stringify(tag) "=" info 27 28 28 29 #define __MODULE_PARM_TYPE(name, _type) \ 29 - __MODULE_INFO(parmtype, name##type, #name ":" _type) 30 + MODULE_INFO(parmtype, #name ":" _type) 30 31 31 32 /* One for each parameter, describing how to use it. Some files do 32 33 multiple of these per line, so can't just use MODULE_INFO. */ 33 34 #define MODULE_PARM_DESC(_parm, desc) \ 34 - __MODULE_INFO(parm, _parm, #_parm ":" desc) 35 + MODULE_INFO(parm, #_parm ":" desc) 35 36 36 37 struct kernel_param; 37 38
+2 -2
include/net/tcp.h
··· 2662 2662 void (*write_space)(struct sock *sk)); 2663 2663 2664 2664 #define MODULE_ALIAS_TCP_ULP(name) \ 2665 - __MODULE_INFO(alias, alias_userspace, name); \ 2666 - __MODULE_INFO(alias, alias_tcp_ulp, "tcp-ulp-" name) 2665 + MODULE_INFO(alias, name); \ 2666 + MODULE_INFO(alias, "tcp-ulp-" name) 2667 2667 2668 2668 #ifdef CONFIG_NET_SOCK_MSG 2669 2669 struct sk_msg;