hsr: use genl_register_family_with_ops()
This simplifies the code since there's no longer a need to have error handling in the registration. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
88d36a9949
commit
9504b3ee1c
@@ -306,15 +306,6 @@ fail:
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct genl_ops hsr_ops_get_node_status = {
|
|
||||||
.cmd = HSR_C_GET_NODE_STATUS,
|
|
||||||
.flags = 0,
|
|
||||||
.policy = hsr_genl_policy,
|
|
||||||
.doit = hsr_get_node_status,
|
|
||||||
.dumpit = NULL,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* Get a list of MacAddressA of all nodes known to this node (other than self).
|
/* Get a list of MacAddressA of all nodes known to this node (other than self).
|
||||||
*/
|
*/
|
||||||
static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info)
|
static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info)
|
||||||
@@ -398,12 +389,21 @@ fail:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct genl_ops hsr_ops_get_node_list = {
|
static struct genl_ops hsr_ops[] = {
|
||||||
|
{
|
||||||
|
.cmd = HSR_C_GET_NODE_STATUS,
|
||||||
|
.flags = 0,
|
||||||
|
.policy = hsr_genl_policy,
|
||||||
|
.doit = hsr_get_node_status,
|
||||||
|
.dumpit = NULL,
|
||||||
|
},
|
||||||
|
{
|
||||||
.cmd = HSR_C_GET_NODE_LIST,
|
.cmd = HSR_C_GET_NODE_LIST,
|
||||||
.flags = 0,
|
.flags = 0,
|
||||||
.policy = hsr_genl_policy,
|
.policy = hsr_genl_policy,
|
||||||
.doit = hsr_get_node_list,
|
.doit = hsr_get_node_list,
|
||||||
.dumpit = NULL,
|
.dumpit = NULL,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
int __init hsr_netlink_init(void)
|
int __init hsr_netlink_init(void)
|
||||||
@@ -414,18 +414,11 @@ int __init hsr_netlink_init(void)
|
|||||||
if (rc)
|
if (rc)
|
||||||
goto fail_rtnl_link_register;
|
goto fail_rtnl_link_register;
|
||||||
|
|
||||||
rc = genl_register_family(&hsr_genl_family);
|
rc = genl_register_family_with_ops(&hsr_genl_family, hsr_ops,
|
||||||
|
ARRAY_SIZE(hsr_ops));
|
||||||
if (rc)
|
if (rc)
|
||||||
goto fail_genl_register_family;
|
goto fail_genl_register_family;
|
||||||
|
|
||||||
rc = genl_register_ops(&hsr_genl_family, &hsr_ops_get_node_status);
|
|
||||||
if (rc)
|
|
||||||
goto fail_genl_register_ops;
|
|
||||||
|
|
||||||
rc = genl_register_ops(&hsr_genl_family, &hsr_ops_get_node_list);
|
|
||||||
if (rc)
|
|
||||||
goto fail_genl_register_ops_node_list;
|
|
||||||
|
|
||||||
rc = genl_register_mc_group(&hsr_genl_family, &hsr_network_genl_mcgrp);
|
rc = genl_register_mc_group(&hsr_genl_family, &hsr_network_genl_mcgrp);
|
||||||
if (rc)
|
if (rc)
|
||||||
goto fail_genl_register_mc_group;
|
goto fail_genl_register_mc_group;
|
||||||
@@ -433,10 +426,6 @@ int __init hsr_netlink_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
fail_genl_register_mc_group:
|
fail_genl_register_mc_group:
|
||||||
genl_unregister_ops(&hsr_genl_family, &hsr_ops_get_node_list);
|
|
||||||
fail_genl_register_ops_node_list:
|
|
||||||
genl_unregister_ops(&hsr_genl_family, &hsr_ops_get_node_status);
|
|
||||||
fail_genl_register_ops:
|
|
||||||
genl_unregister_family(&hsr_genl_family);
|
genl_unregister_family(&hsr_genl_family);
|
||||||
fail_genl_register_family:
|
fail_genl_register_family:
|
||||||
rtnl_link_unregister(&hsr_link_ops);
|
rtnl_link_unregister(&hsr_link_ops);
|
||||||
@@ -448,7 +437,6 @@ fail_rtnl_link_register:
|
|||||||
void __exit hsr_netlink_exit(void)
|
void __exit hsr_netlink_exit(void)
|
||||||
{
|
{
|
||||||
genl_unregister_mc_group(&hsr_genl_family, &hsr_network_genl_mcgrp);
|
genl_unregister_mc_group(&hsr_genl_family, &hsr_network_genl_mcgrp);
|
||||||
genl_unregister_ops(&hsr_genl_family, &hsr_ops_get_node_status);
|
|
||||||
genl_unregister_family(&hsr_genl_family);
|
genl_unregister_family(&hsr_genl_family);
|
||||||
|
|
||||||
rtnl_link_unregister(&hsr_link_ops);
|
rtnl_link_unregister(&hsr_link_ops);
|
||||||
|
Reference in New Issue
Block a user