Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / net / ieee802154 / netlink.c
index 1a81709a4717ea8f285015d2ede270fe396fa63d..43f1b2bf469f40938a431582b305c45587049a04 100644 (file)
@@ -70,7 +70,7 @@ int ieee802154_nl_mcast(struct sk_buff *msg, unsigned int group)
        if (genlmsg_end(msg, hdr) < 0)
                goto out;
 
-       return genlmsg_multicast(msg, 0, group, GFP_ATOMIC);
+       return genlmsg_multicast(&nl802154_family, msg, 0, group, GFP_ATOMIC);
 out:
        nlmsg_free(msg);
        return -ENOBUFS;
@@ -125,25 +125,17 @@ static const struct genl_ops ieee8021154_ops[] = {
                        ieee802154_dump_iface),
 };
 
-int __init ieee802154_nl_init(void)
-{
-       int rc;
-
-       rc = genl_register_family_with_ops(&nl802154_family, ieee8021154_ops);
-       if (rc)
-               return rc;
+static const struct genl_multicast_group ieee802154_mcgrps[] = {
+       [IEEE802154_COORD_MCGRP] = { .name = IEEE802154_MCAST_COORD_NAME, },
+       [IEEE802154_BEACON_MCGRP] = { .name = IEEE802154_MCAST_BEACON_NAME, },
+};
 
-       rc = genl_register_mc_group(&nl802154_family, &ieee802154_coord_mcgrp);
-       if (rc)
-               goto fail;
 
-       rc = genl_register_mc_group(&nl802154_family, &ieee802154_beacon_mcgrp);
-       if (rc)
-               goto fail;
-       return 0;
-fail:
-       genl_unregister_family(&nl802154_family);
-       return rc;
+int __init ieee802154_nl_init(void)
+{
+       return genl_register_family_with_ops_groups(&nl802154_family,
+                                                   ieee8021154_ops,
+                                                   ieee802154_mcgrps);
 }
 
 void __exit ieee802154_nl_exit(void)