Commit 9504b3ee authored by Johannes Berg's avatar Johannes Berg Committed by David S. Miller

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: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 88d36a99
...@@ -306,15 +306,6 @@ static int hsr_get_node_status(struct sk_buff *skb_in, struct genl_info *info) ...@@ -306,15 +306,6 @@ static int hsr_get_node_status(struct sk_buff *skb_in, struct genl_info *info)
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 @@ static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info) ...@@ -398,12 +389,21 @@ static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info)
} }
static struct genl_ops hsr_ops_get_node_list = { static struct genl_ops hsr_ops[] = {
.cmd = HSR_C_GET_NODE_LIST, {
.flags = 0, .cmd = HSR_C_GET_NODE_STATUS,
.policy = hsr_genl_policy, .flags = 0,
.doit = hsr_get_node_list, .policy = hsr_genl_policy,
.dumpit = NULL, .doit = hsr_get_node_status,
.dumpit = NULL,
},
{
.cmd = HSR_C_GET_NODE_LIST,
.flags = 0,
.policy = hsr_genl_policy,
.doit = hsr_get_node_list,
.dumpit = NULL,
},
}; };
int __init hsr_netlink_init(void) int __init hsr_netlink_init(void)
...@@ -414,18 +414,11 @@ 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) ...@@ -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 @@ int __init hsr_netlink_init(void) ...@@ -448,7 +437,6 @@ int __init hsr_netlink_init(void)
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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment