aboutsummaryrefslogtreecommitdiffstats
path: root/net/hsr
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-11-14 11:14:40 -0500
committerDavid S. Miller <davem@davemloft.net>2013-11-14 17:10:40 -0500
commit9504b3ee1c4490d669feb7622c828771d98b2c23 (patch)
treec9316298a309d820df1b68b8682c2e1eff89af77 /net/hsr
parent88d36a9949513419de3a506e7fca8b82d1dc972a (diff)
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>
Diffstat (limited to 'net/hsr')
-rw-r--r--net/hsr/hsr_netlink.c46
1 files changed, 17 insertions, 29 deletions
diff --git a/net/hsr/hsr_netlink.c b/net/hsr/hsr_netlink.c
index 4e66bf61f585..8f52a9fb7e85 100644
--- a/net/hsr/hsr_netlink.c
+++ b/net/hsr/hsr_netlink.c
@@ -306,15 +306,6 @@ fail:
306 return res; 306 return res;
307} 307}
308 308
309static struct genl_ops hsr_ops_get_node_status = {
310 .cmd = HSR_C_GET_NODE_STATUS,
311 .flags = 0,
312 .policy = hsr_genl_policy,
313 .doit = hsr_get_node_status,
314 .dumpit = NULL,
315};
316
317
318/* Get a list of MacAddressA of all nodes known to this node (other than self). 309/* Get a list of MacAddressA of all nodes known to this node (other than self).
319 */ 310 */
320static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info) 311static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info)
@@ -398,12 +389,21 @@ fail:
398} 389}
399 390
400 391
401static struct genl_ops hsr_ops_get_node_list = { 392static struct genl_ops hsr_ops[] = {
402 .cmd = HSR_C_GET_NODE_LIST, 393 {
403 .flags = 0, 394 .cmd = HSR_C_GET_NODE_STATUS,
404 .policy = hsr_genl_policy, 395 .flags = 0,
405 .doit = hsr_get_node_list, 396 .policy = hsr_genl_policy,
406 .dumpit = NULL, 397 .doit = hsr_get_node_status,
398 .dumpit = NULL,
399 },
400 {
401 .cmd = HSR_C_GET_NODE_LIST,
402 .flags = 0,
403 .policy = hsr_genl_policy,
404 .doit = hsr_get_node_list,
405 .dumpit = NULL,
406 },
407}; 407};
408 408
409int __init hsr_netlink_init(void) 409int __init hsr_netlink_init(void)
@@ -414,18 +414,11 @@ int __init hsr_netlink_init(void)
414 if (rc) 414 if (rc)
415 goto fail_rtnl_link_register; 415 goto fail_rtnl_link_register;
416 416
417 rc = genl_register_family(&hsr_genl_family); 417 rc = genl_register_family_with_ops(&hsr_genl_family, hsr_ops,
418 ARRAY_SIZE(hsr_ops));
418 if (rc) 419 if (rc)
419 goto fail_genl_register_family; 420 goto fail_genl_register_family;
420 421
421 rc = genl_register_ops(&hsr_genl_family, &hsr_ops_get_node_status);
422 if (rc)
423 goto fail_genl_register_ops;
424
425 rc = genl_register_ops(&hsr_genl_family, &hsr_ops_get_node_list);
426 if (rc)
427 goto fail_genl_register_ops_node_list;
428
429 rc = genl_register_mc_group(&hsr_genl_family, &hsr_network_genl_mcgrp); 422 rc = genl_register_mc_group(&hsr_genl_family, &hsr_network_genl_mcgrp);
430 if (rc) 423 if (rc)
431 goto fail_genl_register_mc_group; 424 goto fail_genl_register_mc_group;
@@ -433,10 +426,6 @@ int __init hsr_netlink_init(void)
433 return 0; 426 return 0;
434 427
435fail_genl_register_mc_group: 428fail_genl_register_mc_group:
436 genl_unregister_ops(&hsr_genl_family, &hsr_ops_get_node_list);
437fail_genl_register_ops_node_list:
438 genl_unregister_ops(&hsr_genl_family, &hsr_ops_get_node_status);
439fail_genl_register_ops:
440 genl_unregister_family(&hsr_genl_family); 429 genl_unregister_family(&hsr_genl_family);
441fail_genl_register_family: 430fail_genl_register_family:
442 rtnl_link_unregister(&hsr_link_ops); 431 rtnl_link_unregister(&hsr_link_ops);
@@ -448,7 +437,6 @@ fail_rtnl_link_register:
448void __exit hsr_netlink_exit(void) 437void __exit hsr_netlink_exit(void)
449{ 438{
450 genl_unregister_mc_group(&hsr_genl_family, &hsr_network_genl_mcgrp); 439 genl_unregister_mc_group(&hsr_genl_family, &hsr_network_genl_mcgrp);
451 genl_unregister_ops(&hsr_genl_family, &hsr_ops_get_node_status);
452 genl_unregister_family(&hsr_genl_family); 440 genl_unregister_family(&hsr_genl_family);
453 441
454 rtnl_link_unregister(&hsr_link_ops); 442 rtnl_link_unregister(&hsr_link_ops);