mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 13:51:44 +00:00
[PATCH] genetlink: don't touch module ref count
Increasing the module ref count at registration will block the module from ever being unloaded. In fact, genetlink should not care about the owner at all. This patch removes the owner field from the struct registered with genetlink. Signed-off-by: Per Liden <per.liden@ericsson.com> Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2e4e6a17af
commit
23b0ca5bf5
@ -22,7 +22,6 @@ struct genl_family
|
||||
char name[GENL_NAMSIZ];
|
||||
unsigned int version;
|
||||
unsigned int maxattr;
|
||||
struct module * owner;
|
||||
struct nlattr ** attrbuf; /* private */
|
||||
struct list_head ops_list; /* private */
|
||||
struct list_head family_list; /* private */
|
||||
|
@ -222,11 +222,6 @@ int genl_register_family(struct genl_family *family)
|
||||
goto errout_locked;
|
||||
}
|
||||
|
||||
if (!try_module_get(family->owner)) {
|
||||
err = -EBUSY;
|
||||
goto errout_locked;
|
||||
}
|
||||
|
||||
if (family->id == GENL_ID_GENERATE) {
|
||||
u16 newid = genl_generate_id();
|
||||
|
||||
@ -283,7 +278,6 @@ int genl_unregister_family(struct genl_family *family)
|
||||
INIT_LIST_HEAD(&family->ops_list);
|
||||
genl_unlock();
|
||||
|
||||
module_put(family->owner);
|
||||
kfree(family->attrbuf);
|
||||
genl_ctrl_event(CTRL_CMD_DELFAMILY, family);
|
||||
return 0;
|
||||
@ -535,7 +529,6 @@ static struct genl_family genl_ctrl = {
|
||||
.name = "nlctrl",
|
||||
.version = 0x1,
|
||||
.maxattr = CTRL_ATTR_MAX,
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static int __init genl_init(void)
|
||||
|
@ -72,7 +72,6 @@ static struct genl_family family = {
|
||||
.version = TIPC_GENL_VERSION,
|
||||
.hdrsize = TIPC_GENL_HDRLEN,
|
||||
.maxattr = 0,
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static struct genl_ops ops = {
|
||||
|
Loading…
Reference in New Issue
Block a user