diff options
Diffstat (limited to 'net/tipc')
| -rw-r--r-- | net/tipc/eth_media.c | 2 | ||||
| -rw-r--r-- | net/tipc/netlink.c | 38 |
2 files changed, 17 insertions, 23 deletions
diff --git a/net/tipc/eth_media.c b/net/tipc/eth_media.c index f72ba774c246..524ba5696d4d 100644 --- a/net/tipc/eth_media.c +++ b/net/tipc/eth_media.c | |||
| @@ -167,7 +167,7 @@ static int enable_bearer(struct tipc_bearer *tb_ptr) | |||
| 167 | tb_ptr->mtu = dev->mtu; | 167 | tb_ptr->mtu = dev->mtu; |
| 168 | tb_ptr->blocked = 0; | 168 | tb_ptr->blocked = 0; |
| 169 | tb_ptr->addr.type = htonl(TIPC_MEDIA_TYPE_ETH); | 169 | tb_ptr->addr.type = htonl(TIPC_MEDIA_TYPE_ETH); |
| 170 | memcpy(&tb_ptr->addr.dev_addr, &dev->dev_addr, ETH_ALEN); | 170 | memcpy(&tb_ptr->addr.dev_addr, dev->dev_addr, ETH_ALEN); |
| 171 | return 0; | 171 | return 0; |
| 172 | } | 172 | } |
| 173 | 173 | ||
diff --git a/net/tipc/netlink.c b/net/tipc/netlink.c index c387217bb230..3c57005e44d1 100644 --- a/net/tipc/netlink.c +++ b/net/tipc/netlink.c | |||
| @@ -68,7 +68,7 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info) | |||
| 68 | return 0; | 68 | return 0; |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | static struct genl_family family = { | 71 | static struct genl_family tipc_genl_family = { |
| 72 | .id = GENL_ID_GENERATE, | 72 | .id = GENL_ID_GENERATE, |
| 73 | .name = TIPC_GENL_NAME, | 73 | .name = TIPC_GENL_NAME, |
| 74 | .version = TIPC_GENL_VERSION, | 74 | .version = TIPC_GENL_VERSION, |
| @@ -76,39 +76,33 @@ static struct genl_family family = { | |||
| 76 | .maxattr = 0, | 76 | .maxattr = 0, |
| 77 | }; | 77 | }; |
| 78 | 78 | ||
| 79 | static struct genl_ops ops = { | 79 | static struct genl_ops tipc_genl_ops = { |
| 80 | .cmd = TIPC_GENL_CMD, | 80 | .cmd = TIPC_GENL_CMD, |
| 81 | .doit = handle_cmd, | 81 | .doit = handle_cmd, |
| 82 | }; | 82 | }; |
| 83 | 83 | ||
| 84 | static int family_registered = 0; | 84 | static int tipc_genl_family_registered; |
| 85 | 85 | ||
| 86 | int tipc_netlink_start(void) | 86 | int tipc_netlink_start(void) |
| 87 | { | 87 | { |
| 88 | int res; | ||
| 88 | 89 | ||
| 90 | res = genl_register_family_with_ops(&tipc_genl_family, | ||
| 91 | &tipc_genl_ops, 1); | ||
| 92 | if (res) { | ||
| 93 | err("Failed to register netlink interface\n"); | ||
| 94 | return res; | ||
| 95 | } | ||
| 89 | 96 | ||
| 90 | if (genl_register_family(&family)) | 97 | tipc_genl_family_registered = 1; |
| 91 | goto err; | ||
| 92 | |||
| 93 | family_registered = 1; | ||
| 94 | |||
| 95 | if (genl_register_ops(&family, &ops)) | ||
| 96 | goto err_unregister; | ||
| 97 | |||
| 98 | return 0; | 98 | return 0; |
| 99 | |||
| 100 | err_unregister: | ||
| 101 | genl_unregister_family(&family); | ||
| 102 | family_registered = 0; | ||
| 103 | err: | ||
| 104 | err("Failed to register netlink interface\n"); | ||
| 105 | return -EFAULT; | ||
| 106 | } | 99 | } |
| 107 | 100 | ||
| 108 | void tipc_netlink_stop(void) | 101 | void tipc_netlink_stop(void) |
| 109 | { | 102 | { |
| 110 | if (family_registered) { | 103 | if (!tipc_genl_family_registered) |
| 111 | genl_unregister_family(&family); | 104 | return; |
| 112 | family_registered = 0; | 105 | |
| 113 | } | 106 | genl_unregister_family(&tipc_genl_family); |
| 107 | tipc_genl_family_registered = 0; | ||
| 114 | } | 108 | } |
