On Fri, 13 Jan 2006, David S. Miller wrote:

> From: Jamal Hadi Salim <[EMAIL PROTECTED]>
> Date: Fri, 13 Jan 2006 09:30:27 -0500
> 
> > On Fri, 2006-13-01 at 09:27 +0100, Per Liden wrote:
> > > 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 <[EMAIL PROTECTED]>
> > 
> > Signed-off-by: Jamal Hadi Salim <[EMAIL PROTECTED]>
> > 
> > BTW, thinking in the background we may in the future need the owner
> > field for users of those modules (not for gennetlink to increment) but
> > lets worry about that in the future.
> 
> I don't have a copy of this patch in my inbox, can someone
> resend it to me?  Thanks.

Resending.

/Per


[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 <[EMAIL PROTECTED]>
Signed-off-by: Jamal Hadi Salim <[EMAIL PROTECTED]>

---

 include/net/genetlink.h |    1 -
 net/netlink/genetlink.c |    7 -------
 net/tipc/netlink.c      |    1 -
 3 files changed, 0 insertions(+), 9 deletions(-)

4647eec00ae3dc1be979f5387d766529cb64e29c
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_fam
                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_f
                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 = {
-- 
1.0.GIT
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to