ieee802154: merge nl802154 and wpan-class in single module
Dmitry Eremin-Solenikov [Thu, 10 Sep 2009 13:50:12 +0000 (17:50 +0400)]
There is no real need to have ieee802154 interfaces separate
into several small modules, as neither of them has it's own use.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>

net/ieee802154/Makefile
net/ieee802154/netlink.c
net/ieee802154/wpan-class.c

index 4068a9f..42b1f0d 100644 (file)
@@ -1,5 +1,5 @@
-obj-$(CONFIG_IEEE802154) +=    nl802154.o af_802154.o wpan-class.o
-nl802154-y             := netlink.o nl_policy.o
+obj-$(CONFIG_IEEE802154) +=    ieee802154.o af_802154.o
+ieee802154-y           := netlink.o nl_policy.o wpan-class.o
 af_802154-y            := af_ieee802154.o raw.o dgram.o
 
 ccflags-y += -Wall -DDEBUG
index ca767bd..0fadd6b 100644 (file)
@@ -643,7 +643,7 @@ static struct genl_ops ieee802154_coordinator_ops[] = {
                                                        ieee802154_dump_iface),
 };
 
-static int __init ieee802154_nl_init(void)
+int __init ieee802154_nl_init(void)
 {
        int rc;
        int i;
@@ -676,14 +676,9 @@ fail:
        genl_unregister_family(&ieee802154_coordinator_family);
        return rc;
 }
-module_init(ieee802154_nl_init);
 
-static void __exit ieee802154_nl_exit(void)
+void __exit ieee802154_nl_exit(void)
 {
        genl_unregister_family(&ieee802154_coordinator_family);
 }
-module_exit(ieee802154_nl_exit);
-
-MODULE_LICENSE("GPL v2");
-MODULE_DESCRIPTION("ieee 802.15.4 configuration interface");
 
index cd42e88..38bac70 100644 (file)
@@ -22,6 +22,8 @@
 
 #include <net/wpan-phy.h>
 
+#include "ieee802154.h"
+
 #define MASTER_SHOW_COMPLEX(name, format_string, args...)              \
 static ssize_t name ## _show(struct device *dev,                       \
                            struct device_attribute *attr, char *buf)   \
@@ -188,16 +190,31 @@ EXPORT_SYMBOL(wpan_phy_free);
 
 static int __init wpan_phy_class_init(void)
 {
-       return class_register(&wpan_phy_class);
+       int rc;
+       rc = class_register(&wpan_phy_class);
+       if (rc)
+               goto err;
+
+       rc = ieee802154_nl_init();
+       if (rc)
+               goto err_nl;
+
+       return 0;
+err_nl:
+       class_unregister(&wpan_phy_class);
+err:
+       return rc;
 }
-subsys_initcall(wpan_phy_class_init);
+module_init(wpan_phy_class_init);
 
 static void __exit wpan_phy_class_exit(void)
 {
+       ieee802154_nl_exit();
        class_unregister(&wpan_phy_class);
 }
 module_exit(wpan_phy_class_exit);
 
-MODULE_DESCRIPTION("IEEE 802.15.4 device class");
 MODULE_LICENSE("GPL v2");
+MODULE_DESCRIPTION("IEEE 802.15.4 configuration interface");
+MODULE_AUTHOR("Dmitry Eremin-Solenikov");