diff options
author | Johannes Berg <johannes.berg@intel.com> | 2013-11-14 11:14:40 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-11-14 17:10:40 -0500 |
commit | 9504b3ee1c4490d669feb7622c828771d98b2c23 (patch) | |
tree | c9316298a309d820df1b68b8682c2e1eff89af77 /net/hsr | |
parent | 88d36a9949513419de3a506e7fca8b82d1dc972a (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.c | 46 |
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 | ||
309 | static 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 | */ |
320 | static int hsr_get_node_list(struct sk_buff *skb_in, struct genl_info *info) | 311 | static 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 | ||
401 | static struct genl_ops hsr_ops_get_node_list = { | 392 | static 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 | ||
409 | int __init hsr_netlink_init(void) | 409 | int __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 | ||
435 | fail_genl_register_mc_group: | 428 | fail_genl_register_mc_group: |
436 | genl_unregister_ops(&hsr_genl_family, &hsr_ops_get_node_list); | ||
437 | fail_genl_register_ops_node_list: | ||
438 | genl_unregister_ops(&hsr_genl_family, &hsr_ops_get_node_status); | ||
439 | fail_genl_register_ops: | ||
440 | genl_unregister_family(&hsr_genl_family); | 429 | genl_unregister_family(&hsr_genl_family); |
441 | fail_genl_register_family: | 430 | fail_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: | |||
448 | void __exit hsr_netlink_exit(void) | 437 | void __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); |