|
@@ -61,7 +61,7 @@ static struct header_ops lowpan_header_ops = {
|
|
|
static struct lock_class_key lowpan_tx_busylock;
|
|
|
static struct lock_class_key lowpan_netdev_xmit_lock_key;
|
|
|
|
|
|
-static void lowpan_set_lockdep_class_one(struct net_device *dev,
|
|
|
+static void lowpan_set_lockdep_class_one(struct net_device *ldev,
|
|
|
struct netdev_queue *txq,
|
|
|
void *_unused)
|
|
|
{
|
|
@@ -69,10 +69,10 @@ static void lowpan_set_lockdep_class_one(struct net_device *dev,
|
|
|
&lowpan_netdev_xmit_lock_key);
|
|
|
}
|
|
|
|
|
|
-static int lowpan_dev_init(struct net_device *dev)
|
|
|
+static int lowpan_dev_init(struct net_device *ldev)
|
|
|
{
|
|
|
- netdev_for_each_tx_queue(dev, lowpan_set_lockdep_class_one, NULL);
|
|
|
- dev->qdisc_tx_busylock = &lowpan_tx_busylock;
|
|
|
+ netdev_for_each_tx_queue(ldev, lowpan_set_lockdep_class_one, NULL);
|
|
|
+ ldev->qdisc_tx_busylock = &lowpan_tx_busylock;
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -81,23 +81,23 @@ static const struct net_device_ops lowpan_netdev_ops = {
|
|
|
.ndo_start_xmit = lowpan_xmit,
|
|
|
};
|
|
|
|
|
|
-static void lowpan_setup(struct net_device *dev)
|
|
|
+static void lowpan_setup(struct net_device *ldev)
|
|
|
{
|
|
|
- dev->addr_len = IEEE802154_ADDR_LEN;
|
|
|
- memset(dev->broadcast, 0xff, IEEE802154_ADDR_LEN);
|
|
|
- dev->type = ARPHRD_6LOWPAN;
|
|
|
+ ldev->addr_len = IEEE802154_ADDR_LEN;
|
|
|
+ memset(ldev->broadcast, 0xff, IEEE802154_ADDR_LEN);
|
|
|
+ ldev->type = ARPHRD_6LOWPAN;
|
|
|
/* Frame Control + Sequence Number + Address fields + Security Header */
|
|
|
- dev->hard_header_len = 2 + 1 + 20 + 14;
|
|
|
- dev->needed_tailroom = 2; /* FCS */
|
|
|
- dev->mtu = IPV6_MIN_MTU;
|
|
|
- dev->priv_flags |= IFF_NO_QUEUE;
|
|
|
- dev->flags = IFF_BROADCAST | IFF_MULTICAST;
|
|
|
- dev->watchdog_timeo = 0;
|
|
|
-
|
|
|
- dev->netdev_ops = &lowpan_netdev_ops;
|
|
|
- dev->header_ops = &lowpan_header_ops;
|
|
|
- dev->destructor = free_netdev;
|
|
|
- dev->features |= NETIF_F_NETNS_LOCAL;
|
|
|
+ ldev->hard_header_len = 2 + 1 + 20 + 14;
|
|
|
+ ldev->needed_tailroom = 2; /* FCS */
|
|
|
+ ldev->mtu = IPV6_MIN_MTU;
|
|
|
+ ldev->priv_flags |= IFF_NO_QUEUE;
|
|
|
+ ldev->flags = IFF_BROADCAST | IFF_MULTICAST;
|
|
|
+ ldev->watchdog_timeo = 0;
|
|
|
+
|
|
|
+ ldev->netdev_ops = &lowpan_netdev_ops;
|
|
|
+ ldev->header_ops = &lowpan_header_ops;
|
|
|
+ ldev->destructor = free_netdev;
|
|
|
+ ldev->features |= NETIF_F_NETNS_LOCAL;
|
|
|
}
|
|
|
|
|
|
static int lowpan_validate(struct nlattr *tb[], struct nlattr *data[])
|
|
@@ -109,10 +109,10 @@ static int lowpan_validate(struct nlattr *tb[], struct nlattr *data[])
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int lowpan_newlink(struct net *src_net, struct net_device *dev,
|
|
|
+static int lowpan_newlink(struct net *src_net, struct net_device *ldev,
|
|
|
struct nlattr *tb[], struct nlattr *data[])
|
|
|
{
|
|
|
- struct net_device *real_dev;
|
|
|
+ struct net_device *wdev;
|
|
|
int ret;
|
|
|
|
|
|
ASSERT_RTNL();
|
|
@@ -120,35 +120,35 @@ static int lowpan_newlink(struct net *src_net, struct net_device *dev,
|
|
|
pr_debug("adding new link\n");
|
|
|
|
|
|
if (!tb[IFLA_LINK] ||
|
|
|
- !net_eq(dev_net(dev), &init_net))
|
|
|
+ !net_eq(dev_net(ldev), &init_net))
|
|
|
return -EINVAL;
|
|
|
- /* find and hold real wpan device */
|
|
|
- real_dev = dev_get_by_index(dev_net(dev), nla_get_u32(tb[IFLA_LINK]));
|
|
|
- if (!real_dev)
|
|
|
+ /* find and hold wpan device */
|
|
|
+ wdev = dev_get_by_index(dev_net(ldev), nla_get_u32(tb[IFLA_LINK]));
|
|
|
+ if (!wdev)
|
|
|
return -ENODEV;
|
|
|
- if (real_dev->type != ARPHRD_IEEE802154) {
|
|
|
- dev_put(real_dev);
|
|
|
+ if (wdev->type != ARPHRD_IEEE802154) {
|
|
|
+ dev_put(wdev);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
- if (real_dev->ieee802154_ptr->lowpan_dev) {
|
|
|
- dev_put(real_dev);
|
|
|
+ if (wdev->ieee802154_ptr->lowpan_dev) {
|
|
|
+ dev_put(wdev);
|
|
|
return -EBUSY;
|
|
|
}
|
|
|
|
|
|
- lowpan_dev_info(dev)->real_dev = real_dev;
|
|
|
+ lowpan_dev_info(ldev)->wdev = wdev;
|
|
|
/* Set the lowpan hardware address to the wpan hardware address. */
|
|
|
- memcpy(dev->dev_addr, real_dev->dev_addr, IEEE802154_ADDR_LEN);
|
|
|
+ memcpy(ldev->dev_addr, wdev->dev_addr, IEEE802154_ADDR_LEN);
|
|
|
|
|
|
- lowpan_netdev_setup(dev, LOWPAN_LLTYPE_IEEE802154);
|
|
|
+ lowpan_netdev_setup(ldev, LOWPAN_LLTYPE_IEEE802154);
|
|
|
|
|
|
- ret = register_netdevice(dev);
|
|
|
+ ret = register_netdevice(ldev);
|
|
|
if (ret < 0) {
|
|
|
- dev_put(real_dev);
|
|
|
+ dev_put(wdev);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
- real_dev->ieee802154_ptr->lowpan_dev = dev;
|
|
|
+ wdev->ieee802154_ptr->lowpan_dev = ldev;
|
|
|
if (!open_count)
|
|
|
lowpan_rx_init();
|
|
|
|
|
@@ -157,10 +157,9 @@ static int lowpan_newlink(struct net *src_net, struct net_device *dev,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static void lowpan_dellink(struct net_device *dev, struct list_head *head)
|
|
|
+static void lowpan_dellink(struct net_device *ldev, struct list_head *head)
|
|
|
{
|
|
|
- struct lowpan_dev_info *lowpan_dev = lowpan_dev_info(dev);
|
|
|
- struct net_device *real_dev = lowpan_dev->real_dev;
|
|
|
+ struct net_device *wdev = lowpan_dev_info(ldev)->wdev;
|
|
|
|
|
|
ASSERT_RTNL();
|
|
|
|
|
@@ -169,9 +168,9 @@ static void lowpan_dellink(struct net_device *dev, struct list_head *head)
|
|
|
if (!open_count)
|
|
|
lowpan_rx_exit();
|
|
|
|
|
|
- real_dev->ieee802154_ptr->lowpan_dev = NULL;
|
|
|
- unregister_netdevice(dev);
|
|
|
- dev_put(real_dev);
|
|
|
+ wdev->ieee802154_ptr->lowpan_dev = NULL;
|
|
|
+ unregister_netdevice(ldev);
|
|
|
+ dev_put(wdev);
|
|
|
}
|
|
|
|
|
|
static struct rtnl_link_ops lowpan_link_ops __read_mostly = {
|
|
@@ -196,9 +195,9 @@ static inline void lowpan_netlink_fini(void)
|
|
|
static int lowpan_device_event(struct notifier_block *unused,
|
|
|
unsigned long event, void *ptr)
|
|
|
{
|
|
|
- struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
|
|
+ struct net_device *wdev = netdev_notifier_info_to_dev(ptr);
|
|
|
|
|
|
- if (dev->type != ARPHRD_IEEE802154)
|
|
|
+ if (wdev->type != ARPHRD_IEEE802154)
|
|
|
goto out;
|
|
|
|
|
|
switch (event) {
|
|
@@ -207,8 +206,8 @@ static int lowpan_device_event(struct notifier_block *unused,
|
|
|
* also delete possible lowpan interfaces which belongs
|
|
|
* to the wpan interface.
|
|
|
*/
|
|
|
- if (dev->ieee802154_ptr && dev->ieee802154_ptr->lowpan_dev)
|
|
|
- lowpan_dellink(dev->ieee802154_ptr->lowpan_dev, NULL);
|
|
|
+ if (wdev->ieee802154_ptr && wdev->ieee802154_ptr->lowpan_dev)
|
|
|
+ lowpan_dellink(wdev->ieee802154_ptr->lowpan_dev, NULL);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|