summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPer Liden <per.liden@ericsson.com>2006-01-13 13:06:40 -0800
committerDavid S. Miller <davem@davemloft.net>2006-01-13 13:06:40 -0800
commit23b0ca5bf52cef0ab0f0fe247cb91cbef836e7eb (patch)
tree3643a547de2c6f3bad63361d1584ff566c9012ba
parent2e4e6a17af35be359cc8f1c924f8f198fbd478cc (diff)
downloadop-kernel-dev-23b0ca5bf52cef0ab0f0fe247cb91cbef836e7eb.zip
op-kernel-dev-23b0ca5bf52cef0ab0f0fe247cb91cbef836e7eb.tar.gz
[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>
-rw-r--r--include/net/genetlink.h1
-rw-r--r--net/netlink/genetlink.c7
-rw-r--r--net/tipc/netlink.c1
3 files changed, 0 insertions, 9 deletions
diff --git a/include/net/genetlink.h b/include/net/genetlink.h
index c5b96b2..805de50 100644
--- a/include/net/genetlink.h
+++ b/include/net/genetlink.h
@@ -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 */
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index 3b13784..4ae1538 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -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)
diff --git a/net/tipc/netlink.c b/net/tipc/netlink.c
index 6fe95ac..19b3f40 100644
--- a/net/tipc/netlink.c
+++ b/net/tipc/netlink.c
@@ -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 = {
OpenPOWER on IntegriCloud