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>
This commit is contained in:
parent
f4363dfc90
commit
7934a8dd86
|
|
@ -43,8 +43,8 @@
|
|||
* alias.
|
||||
*/
|
||||
#define MODULE_ALIAS_CRYPTO(name) \
|
||||
__MODULE_INFO(alias, alias_userspace, name); \
|
||||
__MODULE_INFO(alias, alias_crypto, "crypto-" name)
|
||||
MODULE_INFO(alias, name); \
|
||||
MODULE_INFO(alias, "crypto-" name)
|
||||
|
||||
struct crypto_aead;
|
||||
struct crypto_instance;
|
||||
|
|
|
|||
|
|
@ -164,9 +164,6 @@ extern void cleanup_module(void);
|
|||
|
||||
struct module_kobject *lookup_or_create_module_kobject(const char *name);
|
||||
|
||||
/* Generic info of form tag = "info" */
|
||||
#define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info)
|
||||
|
||||
/* For userspace: you can also call me... */
|
||||
#define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias)
|
||||
|
||||
|
|
|
|||
|
|
@ -20,18 +20,19 @@
|
|||
/* 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) \
|
||||
static const char __UNIQUE_ID(name)[] \
|
||||
/* Generic info of form tag = "info" */
|
||||
#define MODULE_INFO(tag, info) \
|
||||
static const char __UNIQUE_ID(modinfo)[] \
|
||||
__used __section(".modinfo") __aligned(1) \
|
||||
= __MODULE_INFO_PREFIX __stringify(tag) "=" info
|
||||
|
||||
#define __MODULE_PARM_TYPE(name, _type) \
|
||||
__MODULE_INFO(parmtype, name##type, #name ":" _type)
|
||||
MODULE_INFO(parmtype, #name ":" _type)
|
||||
|
||||
/* One for each parameter, describing how to use it. Some files do
|
||||
multiple of these per line, so can't just use MODULE_INFO. */
|
||||
#define MODULE_PARM_DESC(_parm, desc) \
|
||||
__MODULE_INFO(parm, _parm, #_parm ":" desc)
|
||||
MODULE_INFO(parm, #_parm ":" desc)
|
||||
|
||||
struct kernel_param;
|
||||
|
||||
|
|
|
|||
|
|
@ -2662,8 +2662,8 @@ void tcp_update_ulp(struct sock *sk, struct proto *p,
|
|||
void (*write_space)(struct sock *sk));
|
||||
|
||||
#define MODULE_ALIAS_TCP_ULP(name) \
|
||||
__MODULE_INFO(alias, alias_userspace, name); \
|
||||
__MODULE_INFO(alias, alias_tcp_ulp, "tcp-ulp-" name)
|
||||
MODULE_INFO(alias, name); \
|
||||
MODULE_INFO(alias, "tcp-ulp-" name)
|
||||
|
||||
#ifdef CONFIG_NET_SOCK_MSG
|
||||
struct sk_msg;
|
||||
|
|
|
|||
Loading…
Reference in New Issue