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>
This commit is contained in:

committed by
Marcel Holtmann

parent
ea4dcd32a4
commit
4a9a816a4f
@@ -30,6 +30,8 @@
|
||||
#include <linux/nl802154.h>
|
||||
|
||||
#include "ieee802154.h"
|
||||
#include "rdev-ops.h"
|
||||
#include "core.h"
|
||||
|
||||
static int ieee802154_nl_fill_phy(struct sk_buff *msg, u32 portid,
|
||||
u32 seq, int flags, struct wpan_phy *phy)
|
||||
@@ -203,11 +205,6 @@ int ieee802154_add_iface(struct sk_buff *skb, struct genl_info *info)
|
||||
if (!msg)
|
||||
goto out_dev;
|
||||
|
||||
if (!phy->add_iface) {
|
||||
rc = -EINVAL;
|
||||
goto nla_put_failure;
|
||||
}
|
||||
|
||||
if (info->attrs[IEEE802154_ATTR_HW_ADDR] &&
|
||||
nla_len(info->attrs[IEEE802154_ATTR_HW_ADDR]) !=
|
||||
IEEE802154_ADDR_LEN) {
|
||||
@@ -223,7 +220,8 @@ int ieee802154_add_iface(struct sk_buff *skb, struct genl_info *info)
|
||||
}
|
||||
}
|
||||
|
||||
dev = phy->add_iface(phy, devname, type);
|
||||
dev = rdev_add_virtual_intf_deprecated(wpan_phy_to_rdev(phy), devname,
|
||||
type);
|
||||
if (IS_ERR(dev)) {
|
||||
rc = PTR_ERR(dev);
|
||||
goto nla_put_failure;
|
||||
@@ -257,7 +255,7 @@ int ieee802154_add_iface(struct sk_buff *skb, struct genl_info *info)
|
||||
|
||||
dev_unregister:
|
||||
rtnl_lock(); /* del_iface must be called with RTNL lock */
|
||||
phy->del_iface(phy, dev);
|
||||
rdev_del_virtual_intf_deprecated(wpan_phy_to_rdev(phy), dev);
|
||||
dev_put(dev);
|
||||
rtnl_unlock();
|
||||
nla_put_failure:
|
||||
@@ -319,13 +317,8 @@ int ieee802154_del_iface(struct sk_buff *skb, struct genl_info *info)
|
||||
if (!msg)
|
||||
goto out_dev;
|
||||
|
||||
if (!phy->del_iface) {
|
||||
rc = -EINVAL;
|
||||
goto nla_put_failure;
|
||||
}
|
||||
|
||||
rtnl_lock();
|
||||
phy->del_iface(phy, dev);
|
||||
rdev_del_virtual_intf_deprecated(wpan_phy_to_rdev(phy), dev);
|
||||
|
||||
/* We don't have device anymore */
|
||||
dev_put(dev);
|
||||
|
Reference in New Issue
Block a user