summaryrefslogtreecommitdiffstats
path: root/net/mac802154
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2014-11-02 04:18:38 +0100
committerMarcel Holtmann <marcel@holtmann.org>2014-11-02 04:51:06 +0100
commit4a9a816a4f8c79260446811bdf80615b36539949 (patch)
tree0a1cd15db83d484ed190714bf60db93341f9c7c7 /net/mac802154
parentea4dcd32a445908c12e04b3b879c57ec5b3e659a (diff)
downloadlinux-4a9a816a4f8c79260446811bdf80615b36539949.tar.gz
linux-4a9a816a4f8c79260446811bdf80615b36539949.tar.bz2
linux-4a9a816a4f8c79260446811bdf80615b36539949.zip
cfg802154: convert deprecated iface add and del
This patch removes the wpan_phy callbacks for add and del an interface on a phy. Instead we introduce deprecated cfg802154 callbacks for this. Furthermore we introduce a new netlink interface nl802154 which use different callbacks. The deprecated function is to have a backwards compatibility with the current netlink interface. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'net/mac802154')
-rw-r--r--net/mac802154/cfg.c17
-rw-r--r--net/mac802154/ieee802154_i.h4
-rw-r--r--net/mac802154/main.c8
3 files changed, 23 insertions, 6 deletions
diff --git a/net/mac802154/cfg.c b/net/mac802154/cfg.c
index 105468ec8f26..75a5d258ac24 100644
--- a/net/mac802154/cfg.c
+++ b/net/mac802154/cfg.c
@@ -15,5 +15,22 @@
#include <net/cfg802154.h>
+#include "ieee802154_i.h"
+
+static struct net_device *
+ieee802154_add_iface_deprecated(struct wpan_phy *wpan_phy,
+ const char *name, int type)
+{
+ return mac802154_add_iface(wpan_phy, name, type);
+}
+
+static void ieee802154_del_iface_deprecated(struct wpan_phy *wpan_phy,
+ struct net_device *dev)
+{
+ mac802154_del_iface(wpan_phy, dev);
+}
+
const struct cfg802154_ops mac802154_config_ops = {
+ .add_virtual_intf_deprecated = ieee802154_add_iface_deprecated,
+ .del_virtual_intf_deprecated = ieee802154_del_iface_deprecated,
};
diff --git a/net/mac802154/ieee802154_i.h b/net/mac802154/ieee802154_i.h
index 1086a9d96f8f..39af6eaec410 100644
--- a/net/mac802154/ieee802154_i.h
+++ b/net/mac802154/ieee802154_i.h
@@ -174,4 +174,8 @@ void mac802154_get_table(struct net_device *dev,
struct ieee802154_llsec_table **t);
void mac802154_unlock_table(struct net_device *dev);
+struct net_device *
+mac802154_add_iface(struct wpan_phy *phy, const char *name, int type);
+void mac802154_del_iface(struct wpan_phy *phy, struct net_device *dev);
+
#endif /* __IEEE802154_I_H */
diff --git a/net/mac802154/main.c b/net/mac802154/main.c
index 785abb1aafb4..b34ddbf43c3d 100644
--- a/net/mac802154/main.c
+++ b/net/mac802154/main.c
@@ -59,8 +59,7 @@ mac802154_netdev_register(struct wpan_phy *phy, struct net_device *dev)
return 0;
}
-static void
-mac802154_del_iface(struct wpan_phy *phy, struct net_device *dev)
+void mac802154_del_iface(struct wpan_phy *phy, struct net_device *dev)
{
struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);
@@ -76,7 +75,7 @@ mac802154_del_iface(struct wpan_phy *phy, struct net_device *dev)
unregister_netdevice(sdata->dev);
}
-static struct net_device *
+struct net_device *
mac802154_add_iface(struct wpan_phy *phy, const char *name, int type)
{
struct net_device *dev;
@@ -221,9 +220,6 @@ int ieee802154_register_hw(struct ieee802154_hw *hw)
wpan_phy_set_dev(local->phy, local->hw.parent);
- local->phy->add_iface = mac802154_add_iface;
- local->phy->del_iface = mac802154_del_iface;
-
rc = wpan_phy_register(local->phy);
if (rc < 0)
goto out_wq;