[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>

authored by Per Liden and committed by David S. Miller 23b0ca5b 2e4e6a17

-9
-1
include/net/genetlink.h
··· 22 22 char name[GENL_NAMSIZ]; 23 23 unsigned int version; 24 24 unsigned int maxattr; 25 - struct module * owner; 26 25 struct nlattr ** attrbuf; /* private */ 27 26 struct list_head ops_list; /* private */ 28 27 struct list_head family_list; /* private */
-7
net/netlink/genetlink.c
··· 222 222 goto errout_locked; 223 223 } 224 224 225 - if (!try_module_get(family->owner)) { 226 - err = -EBUSY; 227 - goto errout_locked; 228 - } 229 - 230 225 if (family->id == GENL_ID_GENERATE) { 231 226 u16 newid = genl_generate_id(); 232 227 ··· 278 283 INIT_LIST_HEAD(&family->ops_list); 279 284 genl_unlock(); 280 285 281 - module_put(family->owner); 282 286 kfree(family->attrbuf); 283 287 genl_ctrl_event(CTRL_CMD_DELFAMILY, family); 284 288 return 0; ··· 529 535 .name = "nlctrl", 530 536 .version = 0x1, 531 537 .maxattr = CTRL_ATTR_MAX, 532 - .owner = THIS_MODULE, 533 538 }; 534 539 535 540 static int __init genl_init(void)
-1
net/tipc/netlink.c
··· 72 72 .version = TIPC_GENL_VERSION, 73 73 .hdrsize = TIPC_GENL_HDRLEN, 74 74 .maxattr = 0, 75 - .owner = THIS_MODULE, 76 75 }; 77 76 78 77 static struct genl_ops ops = {