tipc: Use genl_register_family_with_ops()

Use genl_register_family_with_ops() instead of a copy. This also changes
netlink related variable names to be kernel-wide unique for consistency
with other users.

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Michał Mirosław 2009-05-21 10:34:05 +00:00 committed by David S. Miller
parent 502664eeaf
commit acb0a200ae

View file

@ -68,7 +68,7 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info)
return 0; return 0;
} }
static struct genl_family family = { static struct genl_family tipc_genl_family = {
.id = GENL_ID_GENERATE, .id = GENL_ID_GENERATE,
.name = TIPC_GENL_NAME, .name = TIPC_GENL_NAME,
.version = TIPC_GENL_VERSION, .version = TIPC_GENL_VERSION,
@ -76,39 +76,33 @@ static struct genl_family family = {
.maxattr = 0, .maxattr = 0,
}; };
static struct genl_ops ops = { static struct genl_ops tipc_genl_ops = {
.cmd = TIPC_GENL_CMD, .cmd = TIPC_GENL_CMD,
.doit = handle_cmd, .doit = handle_cmd,
}; };
static int family_registered = 0; static int tipc_genl_family_registered;
int tipc_netlink_start(void) int tipc_netlink_start(void)
{ {
int res;
res = genl_register_family_with_ops(&tipc_genl_family,
if (genl_register_family(&family)) &tipc_genl_ops, 1);
goto err; if (res) {
family_registered = 1;
if (genl_register_ops(&family, &ops))
goto err_unregister;
return 0;
err_unregister:
genl_unregister_family(&family);
family_registered = 0;
err:
err("Failed to register netlink interface\n"); err("Failed to register netlink interface\n");
return -EFAULT; return res;
}
tipc_genl_family_registered = 1;
return 0;
} }
void tipc_netlink_stop(void) void tipc_netlink_stop(void)
{ {
if (family_registered) { if (!tipc_genl_family_registered)
genl_unregister_family(&family); return;
family_registered = 0;
} genl_unregister_family(&tipc_genl_family);
tipc_genl_family_registered = 0;
} }